最初からJavaの工場モデル - シンプルなファクトリパターンへ - Methodモード工場へ - Abstract Factoryパターン

工場出荷時のスキーマ定義(Baiduの百科事典):

Factoryパターンは、最も一般的にオブジェクト・モデルをインスタンス化するために使用され、モデルは、新プラントの運転方法と場所にあります。工場出荷時のパターンの広範な使用上の有名なジャイブフォーラム、工場出荷時のパターンは、Javaプログラミングシステムでどこにでもあると言うことができます。ファクトリーモードは、オブジェクトの新しいインスタンスを作成することと等価であるので、それが必要であるので、我々は多くの場合、工場出荷時のモデルオブジェクトのインスタンスを作成するために使用される()新しいAを=そのようなAとして、クラス、クラスのインスタンスオブジェクトに応じて生成されたときに新しい眼の複数あなたがそうすることが、もう少し仕事かもしれないが、工場出荷時のパターンを使用することができますが、あなたに大きなシステムのスケーラビリティと極力修正量を与えるかどうかを検討します。

 

まず、達成するためにファクトリパターンを使用しないでください。

服の服・インタフェース、ジーンズジーンズオーバーオールWorkClothes

パッケージcom.xxx.routine.intf。

パブリック インターフェース衣服{
     ボイド doclothes(); // 做衣服 
}
パッケージcom.xxx.routine.implintf; 

インポートcom.xxx.routine.intf.Clothes; 

// ジーンズ
パブリック クラスジーンズ実装の服{ 
    @Override 
    公共 無効doclothes(){ 
        System.out.printlnは( "ジーンズを行います" ); 
    } 
}
以下のためのパッケージ変更com.xxx.routine.implintf; 

インポートcom.xxx.routine.intf.Clothes; 

//はオーバーオール
パブリック クラス WorkClothesを実装する服{ 
    @Override 
    公共 無効doclothes(){ 
        System.out.printlnは(「オーバーオール息子をやります!」); 
    } 
}

テスト実装:

パッケージcom.xxx.routine。

輸入com.xxx.routine.implintf.Jeans。
輸入com.xxx.routine.implintf.WorkClothes。
輸入com.xxx.routine.intf.Clothes。
輸入org.junit.jupiter.api.Test;
輸入org.springframework.boot.test.context.SpringBootTest; 

@SpringBootTest 
クラスRoutineApplicationTests { 

    @Test 
    ボイドcontextLoads(){ 
        衣類C1 = 新しいジーンズ()。   // 牛仔裤 
        服C2 = 新しい WorkClothes(); // 工装裤

        c1.doclothes();  // 做牛仔裤
        c2.doclothes();   // オーバーオールを行う
    } 
} 
------------- -----------出力

ジーンズください
オーバーオールの息子を行います!

 

第二に、単純なファクトリパターン:

[ソース]スキーマを作成するために、百度の百科事典単純なファクトリパターンが属するは、静的ファクトリメソッド(静的ファクトリメソッド)モードとして知られているではなく、GOFのデザインパターンの23種類のいずれかに属しています。シンプルなファクトリパターンはどのような製品のクラスのインスタンスを作成するファクトリオブジェクトによって決定されます。シンプルなファクトリパターンは、工場モデルファミリは、最もシンプルで実用的なモデルは、異なる植物の実現の特別なモードとして理解することができますされています。

シンプルなファクトリパターンの本質は、動的な決定は製品カテゴリ(親クラスまたはインタフェースを継承これらのクラスの製品)のインスタンスを作成する必要があり、入ってくるパラメータに応じてクラスファクトリです。

工場(クリエイター)役割
すべてのインスタンスを作成し、内部ロジックを実装するための責任があるコアの単純なファクトリパターン、。製品のクラスファクトリクラスを作成する方法は、所望の生成オブジェクトを作成するには、直接外の世界と呼ばれることができます。
抽象製品(プロダクト)役割
すべてのインスタンスにパブリックインターフェイスの共通を説明する責任があり、単純なファクトリパターンによって作成されたすべてのオブジェクトの親クラス。
特定の製品(コンクリート製品)役割
目標は、作成されたすべてのオブジェクトがこの役割の特定のクラスの例として提供している、シンプルなファクトリパターンを作成することです。
パッケージcom.xxx.routine.factory。

輸入com.xxx.routine.implintf.Jeans。
輸入com.xxx.routine.implintf.WorkClothes。
輸入com.xxx.routine.intf.Clothes。

// 做衣服工厂
パブリック クラスClothesFactory {
     公共の 静的な服createClothes(文字列型){
         場合( "ジーンズ" .equals(タイプ)){
             返す 新しい)(ジーンズを。
        } そう であれば( "workclothes" .equals(タイプ)){
             リターン 新しいWorkClothes()。
        } {
            リターン ヌル
        } 
    } 
}
    @Test // 試験植物への簡単な方法
    ボイドし、SimpleFactory(){ 
        衣類ジーンズ = ClothesFactory.createClothes( "ジーンズ" ;)
        衣類workclothes = ClothesFactory.createClothes( "workclothes" ); 

        jeans.doclothes(); 
        workclothes.doclothes(); 
    } 
//出力-------------------
ジーンズん
オーバーオール息子を行います!

 [できるだけ早く〜、アドオンあなたが理解して感謝します!]

 

おすすめ

転載: www.cnblogs.com/belen87/p/11930407.html