(C)、ファクトリーモード

工場出荷時のパターンとは何ですか?役割とは何ですか?

オブジェクトを作成するための最良の方法を提供し、スキーマを作成するために、工場出荷時のモデルに属しています。あなたがオブジェクトを作成すると、論理クライアントの露出を作成し、新しく作成されたオブジェクトを指すように共通のインターフェースを使用していません。彼らは複雑なオブジェクトを生成するために必要とされるどこに、あなたは、Factory Methodパターンを使用することができます。春のような。

役割:

Factoryパターンを使用し、別のオブジェクトやプロセスを作成します。クラスAは、B、Bへの呼び出しを除き、Aが工場出荷時のクラスにそれのためとしてインスタンス化され、クラスBを呼び出すために望んでいます。そしてClassBのにClassAの結合度を低減することができます。これは、デカップリングで役割を果たしました。

ファクトリモードでは、コードの重複を減らすことができます。あなたは非常に複雑であり、プロセスのオブジェクトを作成し、多くの場所を使用する場合は、重複したコードの多くを生成します。だから、工場の一元管理を作成するために、これらのオブジェクトを処理することができます。だけでなく、コードの重複を減らす、それは管理と保守の対象となります。

(A)、単純な工場パターン

図1に示すように、インタフェースiクラスを定義します

パブリック インターフェイス  ICLASS {

  公共 ボイドが  作成します();

}

インタフェースICLASSとレプリケーションのメソッドを実装2.Class1

パブリック クラス  Class1が実装  ICLASSを{

@オーバーライド

公共 のボイド  (作成){

。システムOUT .println( "calss1オブジェクトが正常に作成します!");

}

}

3、クラス2及び複製インターフェイス実装方法ICLASS

パブリック クラス  Class2には実装  ICLASSを{

@オーバーライド

公共 のボイド  (作成){

。システムOUT .println( "calss2オブジェクトが正常に作成します!");

}

}

4、ファクトリクラス

パブリック クラス  ファクトリー{

  //これは、クラス1とクラス2インターフェイスへの単純なファクトリパターン、ICLASSです

  公共 のiCLASS  農産物(文字列型){

  もし( "クラス1" .equals(タイプ)){

    返す 新しい  Class1のを();

  } そう であれば( "クラス2" .equals(タイプ)){

    返す 新しい  クラス2を();

  } {

    。システムOUTの .println( "正しいタイプを入力してください!");

  リターン ヌル

  }

}

//複数の方法

/ *パブリックiクラスのClass1(){

新しいClass1のを返します();

}

公共iクラスクラス2(){

新しいクラス2を返します();

} * /

}

5、テストクラス

パブリック静的無効メイン(文字列[] args){
  工場出荷時=新しい工場()。
  iクラスiクラス= factory.produce(「クラス1」)。
  iclass.create();
}

工場モードの第二に、方法

シンプルな工場に問題があり、依存ファクトリクラスのクラスを作成し、そのプログラムを拡大することで、
工場出荷時に問題がある場合は、クラスファクトリを変更する必要があり、他のクラスを作成しても影響を受けることになります。これは、閉鎖の原則に反しています。

上記1,1,2,3-手順。

図4に示すように、ファクトリインタフェースIFactoryです。

パブリック インターフェイス  IFactoryです{

  公共  のiCLASSプロデュース();

}

5、Class1Factory IFactoryですし、オブジェクトを作成するための複製方法を実装します。

 パブリッククラスClass1Factoryは{IFactoryですが実装します

@Override
公共のiCLASS農産物(){
  )(新しいクラス1を返します。
}
}

図6に示すように、上記Class2Factory。

7、テストクラス

パブリッククラスFactoryTest {
パブリック静的無効メイン(文字列[] args){
  IFactoryですプロ=新しいClass1Factory()。
  ICLASS送信者= pro.produce()。
  sender.create();
}
}

第三に、Abstract Factoryパターン

 

おすすめ

転載: www.cnblogs.com/dwxblogs/p/10932646.html