0

ConcreteCreator から ConcreteProduct への壊れた矢印が何を意味するのかわかりません。私はインターネットで検索し、「依存関係」を思いつきました。誰かが素人の言葉で依存関係を説明できますか? ありがとう!

代替テキスト

http://www.dofactory.com/Patterns/PatternFactory.aspxから取得した画像

4

4 に答える 4

3

あなたが正しく述べているように、破線は ConcreteCreator (従属要素またはクライアント要素として) と ConcreteProduct (独立要素またはサプライヤー要素として) の間の依存関係を示しています。

この特定のケースでは、この行は、ConcreteCreator が ConcreteProduct のインスタンスの作成を担当していることを示しています。これは、「作成」ステレオタイプを依存関係に追加することで、より明確にすることができました。

于 2009-06-17T23:28:55.703 に答える
3

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

提供された注記 (つまり、「新しい ConcreteProduct を返す」) は、ConcreteCreator が、ファクトリにとって自然なタイプの ConcreteProduct のオブジェクトをインスタンス化 (または作成) することを意味します。従来、UML では、破線の矢印の上に「<<creates>>」と書くことで、この関係を明確にすることができました。UML では、これらのメモを「ステレオタイプ」と呼んでいます。

詳細については、 Allen Holub の UML クイック リファレンスを参照してください。「ユーザー」が「リソース」を作成する非常によく似た例があることがわかります。

于 2009-06-17T23:43:04.020 に答える
1

ConcreteCreator はそれを作成するために ConcreteProduct が何であるかを知る必要があることを意味していると思います。そのため、そこには明示的な依存関係があります。ファクトリ メソッドは Product を作成しますが、そのメソッドの ConcreteCreator オーバーライドは ConcreteProduct を返す必要があります。

于 2009-06-17T23:28:07.483 に答える
0

これは単なる Factory Method ではなく、Abstract Factory パターンに似ています。Creator の特定の具象派生クラスは、派生 Product クラスの対応するインスタンスを作成します。

于 2009-06-17T23:30:53.063 に答える