2010-10-01 4 views
0

J'ai une question de terminologie/modélisation sur la représentation de composants dans un service. Tenez compte ..Question sur la terminologie "Façade"

Scénario A:

ICatalogService --exposes -> PublishingManager.Publish

ICatalogService --exposes -> RetrievalManager.Retrieve

Scénario B:

ICatalogService --expose -> CatalogManager.Publish

ICatalogService --expose -> CatalogManager.Retrieve

Est-ce que ICatalogService dans le scénario A représente une "façade" car il implémente plus de 1 composant? Est-ce qu'une autre terminologie est appropriée? Pour le puriste, y a-t-il des avantages à séparer les gestionnaires «édition» et «récupération» (AKA: controller) s'ils gèrent les mêmes types d'objets? OU utiliseriez-vous un seul «CatalogManager»?

Répondre

1

L'idée d'une façade est hides complexity behind a simplifying interface. Le fait que dans le scénario A vous exposiez explicitement PublishingManager & RetrievalManager ne semble pas correspondre à cette définition (difficile d'être définitif sans en savoir plus sur votre code).

À votre deuxième question. Je suppose que les deux services sont complémentaires et utilisés pour permettre la connexion entre les éditeurs et les retrievers. Si cela est vrai, alors deux pensées:

  1. je serais aise de mettre à la fois dans le même service que l'objectif fondamental est de créer des liens entre les éditeurs & retrievers
  2. En supposant que je comprends bien, cela ressemble le motif publish/subscribe. Cela pourrait valoir la peine d'y jeter un coup d'œil. Pensez également à utiliser "Abonnez-vous" au lieu de "Récupérer" car cela devrait vous être plus familier.