デザインパターンの工場パターン、単純なファクトリパターン
工場出荷時のパターンの起源:
我々は、使用のオブジェクト、新しい操作の使用を作成する場合。あなたは、新しい会議を作成するために、複数のオブジェクトを使用している場合。したがって、このモデルは、工場、新しいオペレーティング・エージェントをモデル化するために使用されます。工場モデルの起源によると、私たちは、工場出荷時のモデルは、スキーマを作成属していることがわかります。オブジェクトを作成するための最良の方法を提供します。
出典:凱歌のJava(kaigejava)
主力工場のパターン分類:
シンプルなファクトリパターン、Factory Methodパターン、Abstract Factoryパターン
シンプルなファクトリパターン:
シンプルなファクトリパターンは、23個のデザインパターンに属していません。また、静的なファクトリメソッドとして知られている、シンプルなファクトリパターンは、工場出荷時のモデルファミリーでモデルとして使用するのが最も簡単です。それはまた別の植物の実現の特別なモードとして理解することができます。
どのように理解するには?
たとえば、次のファクトリクラス、抽象クラスの製品。
実際の生活の例:ラーメン店、我々は麺よりも多くを生成することができます。
以下のような:トマト卵麺、牛肉麺、麺、笛顔、biangbiang表面と乾燥麺を作ることができ麺。
私たちは、このシナリオをシミュレートする必要があります。
のは、プロジェクトの構造を見てみましょう:
説明:
1:麺インタフェースクラス
2:特定の実装クラスの麺
3:シンプルなファクトリクラス(麺オブジェクト)
4:テストのタイプ
のは、麺のインタフェースクラスを見てみましょう。
INoodlesInterface
:内部トマトと卵麺オブジェクト - 私たちは見て、麺の実装クラスを取ります
パブリッククラス TomatoAndEggNoodlesは 実装 INoodlesInterfaceを{
プライベート 文字列 noodlesName 。
パブリック TomatoAndEggNoodles(){}
公共 TomatoAndEggNoodles(文字列noodlesName){
これ。noodlesName = noodlesName。
}
@オーバーライド
public void noodlesdescription() {
System.out.println("大爷,您的"+this.noodlesName+"价格为:10元。");
}
}
其他具体面条实现类里面类似。这里就不一一贴出来了。
我们来看看面馆对象:
里面由三部分:
菜单部分、根据菜单序号制作面条、根据面条名称制作面条。
我们来看看根据菜单序号制作面条的:
public static INoodlesInterface makeNoodlesByMenuType(int noodletType){
switch (noodletType){
case NOODLES_TYPE_1:
return new TomatoAndEggNoodles("西红柿鸡蛋面");
case NOODLES_TYPE_2:
return new HandPulledNoodleSoupWithBeef("牛肉拉面");
case NOODLES_TYPE_3:
return new HandPulledNoodleSoupWithBeef("刀削面");
case NOODLES_TYPE_4:
return new NoodleWithPork("哨子面");
case NOODLES_TYPE_5:
return new BiangBiangNoodles("biangbiang面");
case NOODLES_TYPE_6:
return new HotAndDryNoodles("热干面");
default:
return new HotAndDryNoodles("热干面");
}
}
另一个方法类似。
查看测试类:
查看运行结果:
运行结果,达到我们预期的。
现在我们来总结下简单工厂模式:
简单工厂模式几个角色:
1:共有的抽象父类或者接口。如:司小司面馆的面条接口对象
2:继承或是实现该接口的具体子类。如:西红柿鸡蛋面、biangbiang面等
3:创建对象的简单工厂类。如:司小司的面馆
イベントのトリガ:
メニューや麺名前の数によって生成トリガークラスファクトリオブジェクト。
シンプルなファクトリパターンの機能を見てみましょう:
クラスを通して。具象クラスは、文switch文が判断されると言われ、これに対応する製品を作成している場合を使用して、抽象クラスのインターフェイスかどうかを作成するための重要な方法です。
連絡先凱歌 - 「凱歌のJava(kaigejava)
個人ブログ:www.kaigejava.com
その中で、この重要なメソッドの作成は、通常は静的です。だから、単純なファクトリパターンは、静的な工場として知られています。