デザインパターンの研究ノート(B) - モデルの作成者(生成に関するパターン)

作成者モード(生成に関するパターン)

  1. シンプルなファクトリパターン(簡易ファクトリー)
    • また、静的なファクトリメソッドパターンとして知られている、それはGOFのデザインパターンの23種類のいずれかに属していません
    Factory.creteObject(objectName);
  2. ファクトリメソッドモデル(プラントモデル)(ファクトリメソッド)
    • それを知らないクラスは、クラスのオブジェクトを必要とする:クライアントは、クラス名、特定の製品カテゴリを知っている必要はありません、あなただけの対応する植物を知っておく必要があります
    • そのサブクラスによって作成されたオブジェクトを指定するクラス
    • デリゲートタスクは、一つのサブカテゴリー内の複数の工場のオブジェクト、サブカテゴリーを作成し、必要に応じて動的に割り当てします
    FactoryA.creteObject(); 
    FactoryB.creteObject(); 
  3. 抽象ファクトリーモード(モードキット)(抽象ファクトリー)
    • 関連または依存オブジェクトのインターフェイスのシリーズを作成し、その具象クラスを指定せずに
      (1つのオブジェクトのみを生成するファクトリパターンを抽象工場モデルは、関連オブジェクトのセットを生成します)
    • 各抽象工場モデルクラスのコンクリート工場は、対象製品を作成するとき、すなわち唯一の結び目グレード製品があり、抽象工場モデルは、ファクトリメソッドパターンに退化。
    • ファクトリメソッドAbstract Factoryパターンは、オブジェクトを作成し、静的ファクトリメソッドの設計方法として、オブジェクトを作成するための統一された製品の工場を提供する、植物特異的に結合した場合の、単純なファクトリパターンにファクトリメソッドパターン縮重
    interface PcFactory{
        Mouse createMouse();
        Keyboard createKeyboard();
    }
    class HpFactory implements PcFactory{
        Mouse createMouse() return HpMouse();
        Keyboard createKeyboard() return HpKeyboard();
    }
    class DellFactory implements PcFactory{
        Mouse createMouse() return DellMouse();
        Keyboard createKeyboard() return DellKeyboard();
    }
  4. ビルダーモード(発電モード)(ビルダー)
    • これは、同一のビルドプロセスが異なる表現を作成することができるように、構築物および複合オブジェクトのその分離を表します
    • 同一の構築プロセスが異なる表現を作成することができるように、複雑なオブジェクトの構造及び性能は、物体から分離しました
    //包含四个角色:
    //Builder:抽象建造者;ConcreteBuilder:具体建造者;
    //Director:指挥者;Product:产品角色
    ConcreteBuilder builder = new ConcreteBuilder();
    Director  director = new Director();
    director.setBuilder(builder);
    Product pd =  director.constuct();
    pd.show();
  5. プロトタイプモデル(プロトタイプ)
    • 定義:作成するには、指定したオブジェクト型の使用プロトタイプのインスタンスは、この例をコピーして新しいオブジェクトを作成します
    • アプリケーション:Javaは深いクローンを達成するためのシリアル化および逆シリアル化ストリームを使用して
  6. Singletonパターン(シングルトン)
    • ある程度「単機能の原則」に反する重すぎる責任シングルトンクラス、。
      シングルトンクラスファクトリの役割の両方が、ファクトリメソッドを提供するだけでなく、製品の役割となっているので、ビジネスメソッドの数自体は一緒に融合し、製品の機能や製品の作成が含まれています

おすすめ

転載: www.cnblogs.com/kintanx/p/11432445.html