notifications ou singleton common
bofy
Membre
Bonjour
Après pas mal d'essais, je me pose la question : quelle est la meilleure méthode, dans la logique cocoa, pour communiquer des données d'une (instance de ) classe à l'autre ?
J'en ai découvert deux :
- un singleton "Common", c'est me semble-t-il la technique du C ?
- des tas de notifications, plus dans la logique événementielle ?
Avant de tout reconstruire, j'aimerais les avis des uns et des autres ?
Merci
Après pas mal d'essais, je me pose la question : quelle est la meilleure méthode, dans la logique cocoa, pour communiquer des données d'une (instance de ) classe à l'autre ?
J'en ai découvert deux :
- un singleton "Common", c'est me semble-t-il la technique du C ?
- des tas de notifications, plus dans la logique événementielle ?
Avant de tout reconstruire, j'aimerais les avis des uns et des autres ?
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
C'est un design pattern objet qui permet effectivement d'avoir une instance unique (ou un certain nombre d'instances) d'une classe partagé dans tout le programme.
En C, on utilise simplement "static" ou "extern"
Après, la communication d'un objet, ben ça dépend complètement du contexte.
Singleton et notifications n'ont pas le même rôle:
- Le singleton est un partage de ressources.
- Les notifications sont des envois de ressources.
Pour le singleton c'est la classe qui a besoin de l'information qui va aller interroger le singleton. Pour les notifications, c'est une autre classe qui va envoyer les infos.
Ces deux notions sont donc d'un usage complémentaire.
En fait, le mécanisme de notification utilise un singleton, [tt][NSNotificationCenter defaultCenter][/tt].
Sinon, il existe au moins deux autres techniques pour communiquer des données d'un objet à l'autre:
La différence entre notification et délégation est que la notification peut avoir un nombre quelconque de destinataires alors que la délégation ne fonctionne qu'avec un seul destinataire.
Heu, quelqu'un avait sous-entendu le contraire?
Ce qui me gêne dans tes propos c'est que ça donne l'impression que finalement on peut utiliser n'importe lequel de ces procédés. Hors chacun a un rôle précis:
- singleton -> partager une ressource globale.
- notification -> informer des objets.
- délégation -> charger une classe tierce d'un travail bien précis.