ウェブサイトからデザインパターンを読んでいた
そこで、ファクトリー、ファクトリーメソッド、アブストラクトファクトリーについて読みましたが、それらは非常に混乱しており、定義が明確ではありません。定義によると
ファクトリ-インスタンス化ロジックをクライアントに公開せずにオブジェクトを作成し、共通のインターフェースを介して新しく作成されたオブジェクトを参照します。ファクトリーメソッドの簡易バージョンです
ファクトリメソッド-オブジェクトを作成するためのインターフェイスを定義しますが、インスタンス化するクラスをサブクラスに決定させ、共通のインターフェイスを通じて新しく作成されたオブジェクトを参照させます。
抽象ファクトリー-クラスを明示的に指定せずに、関連オブジェクトのファミリーを作成するためのインターフェースを提供します。
Abstract FactoryとFactory Methodに関する他のスタックオーバーフロースレッドも調べましたが、そこに描画されたUMLダイアグラムは理解をさらに悪くします。
誰か教えてください
- これら3つのパターンはどのように違うのですか?
- いつ使用するのですか?
- また、可能であれば、これらのパターンに関連するJavaの例はありますか?