2009-06-17 14 views
0

ConcreteCreatorからConcreteProductへの壊れた矢印が何を意味するのかわかりません。私はインターネットで検索し、私は "依存関係"を思いついた。誰かが素人の言葉の依存関係を説明することができますか?ありがとう!UML:誰かが私のためにファクトリメソッドダイアグラムを説明できますか?

alt text http://www.dofactory.com/Patterns/Diagrams/factory.gif

画像はhttp://www.dofactory.com/Patterns/PatternFactory.aspx

答えて

3

あなたは当然の状態として、破線はConcreteCreator(、依存、またはクライアント構成要素など)とConcreteProduct(独立した、またはサプライヤー、要素など)間の依存関係を示しています。この特定の場合において

、ラインがConcreteCreatorがConcreteProductのインスタンス(複数可)を作成する責任があることを示しています。これは、依存関係に '作成'ステレオタイプを付けることで、より明確になる可能性があります。

+0

ええ、それで私はパターンダイアグラムで混乱しています。 <>ステレオタイプがあったはずです。ダイアグラムは私のような初心者には分かりません。 – jerbersoft

1

私はそれがConcreteCreatorはConcreteProductがそれを作成することが何であるかを知らなければならないことを意味すると思うからつかんだので、そこに明示的な依存関係があります。ファクトリメソッドはProductを作成しますが、そのメソッドのConcreteCreatorオーバーライドはConcreteProductを返さなければなりません。

0

これはただのファクトリメソッドではありません - これはよりAbstract Factoryパターンのように見えます。特定のコンクリートから派生したCreatorクラスは、派生したProductクラスの対応するインスタンスを作成します。

+0

上記のリンクをクリックすると、「ファクトリメソッド」パターンがポイントされ、図が表示されます。 – jerbersoft

+0

GHJVのp108の「ファクトリ・メソッド」図の直接コピーです –

2

破線/空の矢じりはConcreteCreatorが何らかの方法でConcreteProduct「を使用しています」ということを意味し、依存性を示しています。矢印自体はその依存関係の性質を定義するものではなく、依存関係が存在し、ConcreteProductは実際にConcreteCreatorのメンバーではないということだけを定義しています。

「return new ConcreteProduct」は、ConcreteCreatorが、工場にとって自然なConcreteProduct型のオブジェクトをインスタンス化(または作成)することを意味します。伝統的にUMLで、あなたが書き込むことによって、この関係を明らかにする可能性「< < > >を作成し、」破線の矢印の上に。 UMLはこれらのノートを「ステレオタイプ」と呼びます。

は、より多くの情報のためAllen Holub's UML Quick Referenceを参照してください。彼は "ユーザー"が "リソース"を作成する非常に似た例を持っていることがわかります。

関連する問題