この質問が何度も尋ねられたことは知っていますが、質問が重複しているように見えるかもしれませんが、SO、Google、GoF の投稿を理解しようとしましたが、答えが見つかりませんでした...
Factory Method と Builder の違いを理解しています: Factory Method - 特定の基本クラスから派生したオブジェクトを作成し、具体的な実装をクライアントから切り離します。
Builder メソッド - オブジェクト作成の複雑さをクライアントから隠します
インターネットで見つけた例 (依存性注入のための抽象ファクトリ デザイン パターン) が表示されました。これは抽象ファクトリに関するものですが、私の質問には関係ありません。これは、私が見た多くの記事の 1 つにすぎません
//Abstract Factory for Dependency Injection
//Factory interface
public interface Module1ServiceFactory {
ComponentA getComponentA();
ComponentB getComponentB();
}
//Concrete factory
public class Module1ServiceFactoryImpl {
private Module1ServiceFactory instance;
private Module1ServiceFactoryImpl() {}
public static synchronized Module1ServiceFactory getInstance() {
if (null == instance) {
instance = new Module1ServiceFactoryImpl();
}
return instance;
}
*** SUBJECT METHOD ***
public ComponentA getComponentA() {
ComponentA componentA = new ComponentAImpl();
ComponentB componentB = getComponentB();
componentA.setComponentB(componentB);
return componentA;
}
public ComponentB getComponentB() {
return new ComponentBImpl();
}
}
その例でわかることは、ComponentA は、それを構築するために getComponentA() メソッドが使用した複合型です。
- では、なぜこれが Builder ではなく Factory と呼ばれるのですか? それとも、Module1ServiceFactoryImpl が Factory AND Builder パターンを実装するということですか?
- ソフトウェア アーキテクチャ設計で複数の設計パターンを実装するクラス/オブジェクトを作成することは正しいですか (一般的に使用されますか)?
そして私の英語でごめんなさい:)