この記事では、java に関する関連知識を提供します。主に抽象ファクトリ パターンに関する関連事項を紹介します。実際の例に基づいて、抽象ファクトリ パターンとは何かを学びます。一緒にやってみましょう。それがみんなに役立つことを願っています。
推奨学習: 「Java ビデオ チュートリアル 」
これは、関連オブジェクトまたは相互依存オブジェクトのセットを作成するためのインターフェイスをアクセス クラスに提供するインターフェイスであり、アクセス クラスは、同じファミリーを取得することができます。目的の製品の特定のクラスを指定する さまざまなレベルの製品のパターン構造。
条件を満たします:抽象ファクトリー:
の継承七英雄 ファクトリー(SimpleFactory):
マスター、ミストレス アブストラクトプロダクト(Product):
隕石(剣の原料)、鳩の卵の巣(未孵化の霊鳩) 具体的な製品:
セブンソード。七霊鳩
マスターは七英雄の遺産を持ち、太陽の剣を鍛え、雄の小さな霊鳩を育てることができます。 主人の妻は七英雄の遺産を持っており、陰の剣を鍛え、雌の鳩を栽培することができます。
七英雄は主人と妻を見つけて、自分たちの剣を作り、自分たちの小さな鳩を養子にします。
抽象製品、製品
インターフェイスでメソッドが宣言されています
S2 インターフェース (鳩の卵のネスト):
public interface S1 { void show();}
インターフェースはメソッド
A1 クラスを宣言します。インターフェイス S1 (Changhong Sword) の実装:public interface S2 { void show();}
S1 インターフェイスの実装
B1 クラス実装インターフェイス S1 (Ice Soul Sword):public class A1 implements S1 { @Override public void show() { System.out.println("打造了一把长虹剑"); }}
S1 インターフェイスの実装
C1 クラス実装インターフェイス S1 (Ziyunjian):public class B1 implements S1 { @Override public void show() { System.out.println("打造了一把冰魄剑"); }}
S1 インターフェイスの実装
D1 クラスはインターフェイス S1 (レインフラワーソード) を実装します:public class C1 implements S1 { @Override public void show() { System.out.println("打造了一把紫云剑"); }}
S1 インターフェイスを実装します
E1 クラスはインターフェイス S1 (Green Light Sword) を実装します。public class D1 implements S1 { @Override public void show() { System.out.println("打造了一把紫云剑"); }}
Ss インターフェイスを実装します。
F1 クラスはインターフェイス S1 (Ben Lei Sword) を実装します。 :public class E1 implements S1 { @Override public void show() { System.out.println("打造了一把紫云剑"); }}
Ss インターフェイスの実装
G1 クラスはインターフェイス S1 (トルネード ソード) を実装します:public class F1 implements S1 { @Override public void show() { System.out.println("打造了一把紫云剑"); }}
Ss インターフェイスの実装
A2 クラスはインターフェイス S2 (Lingge No. 1) を実装します。public class G1 implements S1 { @Override public void show() { System.out.println("打造了一把紫云剑"); }}
S1 インターフェイスの実装
#public class A2 implements S2 { @Override public void show() { System.out.println("灵鸽七号"); }}クラス B2 はインターフェイス S2 (Lingge No. 2) を実装します。
S1 インターフェイスを実装します
public class B2 implements S2 { @Override public void show() { System.out.println("灵鸽七号"); }}C2 クラスはインターフェイスを実装しますインターフェイス S2 (Lingge No. 3):
S1 インターフェイスを実装します
public class C2 implements S2 { @Override public void show() { System.out.println("灵鸽七号"); }}D2 クラスはインターフェイス S2 (Lingge No. 4) を実装します :
S1 インターフェイスの実装
public class D2 implements S2 { @Override public void show() { System.out.println("灵鸽七号"); }}E2 クラスはインターフェイス S2 (Lingge No. 5) を実装します:
Ss インターフェイスの実装
public class E2 implements S2 { @Override public void show() { System.out.println("灵鸽七号"); }}F2 クラスはインターフェイス S2 (Lingge No. 6) を実装します。
Ss インターフェイスの実装
#public class F2 implements S2 { @Override public void show() { System.out.println("灵鸽七号"); }}
G2 クラスはインターフェイス S2 (Lingge No. 7) を実装します。
Ss インターフェイスを実装します
public class G2 implements S2 { @Override public void show() { System.out.println("灵鸽七号"); }}
抽象ファクトリ、ファクトリZz インターフェース (七英雄の伝説):
このインターフェースでは、剣を作るメソッド abc1() と鳩を育てるメソッド abc2()# を宣言しています。 ##
public interface Zz { S1 abc1(String a); S2 abc2(String a);}
Nan クラスはインターフェース Zz (マスター) を実装します:
Zz インターフェースを実装します
public class Nan implements Zz { private static S1 s1; private static S2 s2; public S1 abc1(String a) { if ("长虹剑".equals(a)) { s1 = new A1(); } else if ("奔雷剑".equals(a)) { s1 = new F1(); } else if ("青光剑".equals(a)) { s1 = new E1(); } else if ("雨花剑".equals(a)) { s1 = new D1(); } else if ("旋风剑".equals(a)) { s1 = new G1(); } else { System.out.println("铸剑失败"); } return s1; } public S2 abc2(String a) { if ("灵鸽一号".equals(a)) { s2 = new A2(); } else if ("灵鸽二号".equals(a)) { s2 = new F2(); } else if ("灵鸽三号".equals(a)) { s2 = new E2(); } else if ("灵鸽四号".equals(a)) { s2 = new D2(); } else if ("灵鸽五号".equals(a)) { s2 = new G2(); } else { System.out.println("领养失败"); } return s2; }}
Nvクラス インターフェイス Zz の実装 (マスター ニアン):
Zz インターフェイスの実装
public class Nv implements Zz { private static S1 s1; private static S2 s2; public S1 abc1(String a) { if ("冰魄剑".equals(a)) { s1 = new B1(); } else if ("紫云剑".equals(a)) { s1 = new C1(); } else { System.out.println("铸剑失败"); } return s1; } public S2 abc2(String a) { if ("灵鸽六号".equals(a)) { s2 = new B2(); } else if ("灵鸽七号".equals(a)) { s2 = new C2(); } else { System.out.println("领养失败"); } return s2; }}Test
テスト クラス:
public class Demo { public static void main(String[] args) { System.out.println("---------至阳传承-------------"); //师傅 Nan nan = new Nan(); //造剑 S1 a1 = nan.abc1("长虹剑"); S1 d1 = nan.abc1("雨花剑"); S1 e1 = nan.abc1("青光剑"); S1 f1 = nan.abc1("奔雷剑"); S1 g1 = nan.abc1("旋风剑"); //养鸽子 S2 a2 = nan.abc2("灵鸽一号"); S2 d2 = nan.abc2("灵鸽二号"); S2 e2 = nan.abc2("灵鸽三号"); S2 f2 = nan.abc2("灵鸽四号"); S2 g2 = nan.abc2("灵鸽五号"); a1.show(); d1.show(); e1.show(); f1.show(); g1.show(); a2.show(); d2.show(); e2.show(); f2.show(); g2.show(); System.out.println("---------至阴传承-------------"); //女铸剑师 Nv nv = new Nv(); S1 b1 = nv.abc1("冰魄剑"); S1 c1 = nv.abc1("紫云剑"); b1.show(); c1.show(); S2 b2 = nv.abc2("灵鸽六号"); S2 c2 = nv.abc2("灵鸽七号"); b2.show(); c2.show(); }}推奨学習: 「
Java ビデオ チュートリアル 」
以上がJAVA 抽象ファクトリー パターンの詳細な説明と例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。