注:質問は投稿の最後にあります。
Abstract FactoryとFactory Methodに関する他のスタックオーバーフロースレッドを読みました。各パターンの意図を理解しています。しかし、私はその定義を明確にしていません。
Factoryメソッドは、オブジェクトを作成するためのインターフェースを定義しますが、インスタンス化するものをサブクラスに決定させます。ファクトリメソッドを使用すると、クラスはインスタンス化をサブクラスに遅らせることができます。
対照的に、抽象ファクトリは、具体的なクラスを指定せずに、関連するオブジェクトまたは依存するオブジェクトのファミリを作成するためのインターフェースを提供します。
抽象ファクトリーと非常によく似ていますファクトリメソッド。私のポイントを説明するために、いくつかのUMLクラスを描画しました。
注意:
- 図はwww.yuml.comからのものですので、完全に方向付けられていません。しかし、それは無料のサービスです:)。
- 図は完全ではない場合があります。GoFのデザインパターンはまだ学習中です。
工場での方法:
抽象ファクトリー(1メンバーのみ):
抽象ファクトリー(より多くのメンバー):
質問:
- 場合抽象工場は一つだけ作成者と一つの製品を持っている、それはまだある、抽象ファクトリパターン?(家族を作成するためのインターフェース)
- ファクトリメソッドコンクリートクリエーターをインターフェイスから作成できますか、それともクラスから作成する必要がありますか?(クラスはインスタンス化をサブクラスに延期します)
- 抽象工場は一つだけ作成者と一つの製品を持つことができる場合は、唯一の違いである抽象工場とファクトリメソッド元のための作成者が、後者はクラスであるためにインターフェイスと作成者であることは?