2009-06-17 12 views

Répondre

3

Comme vous dites à juste titre, la ligne en pointillés indique une relation de dépendance entre ConcreteCreator (comme la charge, ou client, élément) et ConcreteProduct (comme élément indépendant, ou le fournisseur,).

Dans ce cas particulier, la ligne indique que ConcreteCreator est responsable de la création d'instance (s) de ConcreteProduct. Cela aurait pu être rendu plus clair en attachant le stéréotype 'create' à la dépendance.

+0

ouais, c'est pourquoi je suis confus sur le schéma. un stéréotype < aurait dû être là. le diagramme n'est pas vraiment compréhensible par les débutants comme moi. – jerbersoft

1

Je pense que cela signifie que ConcreteCreator doit savoir ce qu'est un ConcreteProduct est de créer, donc il y a une dépendance explicite là. La méthode usine crée un produit, mais le remplacement de ConcreteCreator de cette méthode doit renvoyer un produit concret.

0

Ce n'est pas seulement la méthode d'usine - cela ressemble plus au motif d'usine abstrait. Une classe dérivée concrète spécifique de Creator créera une instance correspondante d'une classe Product dérivée.

+0

cliquez sur le lien ci-dessus, il pointe sur le "Factory Method" modèle et jetez un oeil sur le diagramme. – jerbersoft

+0

C'est une copie directe du diagramme "Méthode d'usine" sur p108 de GHJV –

2

La ligne brisée/tête de flèche vide indique une dépendance, ce qui signifie que ConcreteCreator "utilise" ConcreteProduct d'une manière ou d'une autre. La flèche elle-même ne définit pas la nature de cette dépendance, seulement qu'une dépendance existe et que ConcreteProduct n'est pas réellement un membre de ConcreteCreator. La note fournie (c'est-à-dire "return new ConcreteProduct") implique que ConcreteCreator va instancier (ou créer) des objets de type ConcreteProduct, ce qui est naturel pour une usine. Traditionnellement en UML, vous pouvez clarifier cette relation en écrivant "< < crée > >" au-dessus de la flèche pointillée. UML appelle ces notes "stéréotypes".

Voir Allen Holub's UML Quick Reference pour plus d'informations. Vous pouvez voir qu'il a un exemple très similaire où "Utilisateurs" créer "Ressources".