Artikel ini membawakan anda pengetahuan yang berkaitan tentang java terutamanya isu berkaitan tentang corak kilang abstrak itu berdasarkan contoh sebenar. harap dapat membantu semua.
Kajian yang disyorkan: "tutorial video java"
Definisi corak Kilang Abstrak (AbstractFactory): ialah antara muka yang menyediakan kelas akses dengan antara muka untuk mencipta satu set objek yang berkaitan atau saling bergantung, dan kelas akses boleh memperoleh keluarga yang sama objek tanpa menyatakan kelas khusus produk yang dikehendaki struktur Corak tahap produk yang berbeza.
Produk berbilang peringkat yang berkaitan dalam keluarga produk boleh diuruskan bersama dalam kelas tanpa perlu Memperkenalkan secara khusus pelbagai kelas baharu untuk pengurusan.
Apabila keluarga produk diperlukan, kilang abstrak boleh memastikan bahawa pelanggan sentiasa menggunakan kumpulan produk produk yang sama.
Kilang abstrak meningkatkan kebolehskalaan program Apabila menambah keluarga produk baharu, tidak perlu mengubah suai kod asal untuk memenuhi prinsip pembukaan dan penutup.
Peranan utama dalam kes tersebut adalah seperti berikut:
Kilang Abstrak: Pewarisan Tujuh Wira
Kilang (SimpleFactory): Tuan, Puan
Produk Abstrak (Produk): Meteorit (bahan mentah untuk membuat pedang), sarang telur merpati ( Roh Merpati yang belum menetas)
Produk Konkrit: Tujuh Pedang. Tujuh Roh Merpati
Kes:
Tuan mempunyai warisan Tujuh Wira dan boleh menempa Pedang Matahari dan memupuk merpati semangat kecil jantan.
Isteri tuan mempunyai warisan Tujuh Pahlawan dan boleh menempa Pedang Yin dan menanam burung merpati betina.
Tujuh Wira mencari tuan mereka dan isteri mereka untuk membuat pedang mereka sendiri dan mengambil merpati kecil mereka sendiri.
Antara muka S1 (Meteorit):
Satu kaedah diisytiharkan dalam antara muka
public interface S1 { void show();}
Antara muka S2 (sarang telur merpati):
Satu kaedah diisytiharkan dalam antara muka
public interface S2 { void show();}
Kelas A1 melaksanakan antara muka S1 (Changhong Sword):
melaksanakan antara muka S1
public class A1 implements S1 { @Override public void show() { System.out.println("打造了一把长虹剑"); }}
Kelas B1 melaksanakan antara muka S1 (Bingpo Pedang):
Laksanakan antara muka S1
public class B1 implements S1 { @Override public void show() { System.out.println("打造了一把冰魄剑"); }}
Kelas C1 melaksanakan antara muka S1 (Pedang Ziyun):
Melaksanakan antara muka S1
public class C1 implements S1 { @Override public void show() { System.out.println("打造了一把紫云剑"); }}
Kelas D1 melaksanakan antara muka S1 (Yuhua Sword):
Melaksanakan antara muka S1
public class D1 implements S1 { @Override public void show() { System.out.println("打造了一把紫云剑"); }}
Kelas E1 melaksanakan antara muka S1 (Pedang Cahaya Hijau):
Melaksanakan antara muka Ss
public class E1 implements S1 { @Override public void show() { System.out.println("打造了一把紫云剑"); }}
Kelas F1 melaksanakan antara muka S1 (Ben Lei Sword):
melaksanakan antara muka Ss
public class F1 implements S1 { @Override public void show() { System.out.println("打造了一把紫云剑"); }}
Implementasi kelas G1 Antaramuka S1 (Tornado Sword):
Melaksanakan antara muka Ss
public class G1 implements S1 { @Override public void show() { System.out.println("打造了一把紫云剑"); }}
Kelas A2 melaksanakan antara muka S2 (Ling Ge No. 1):
Melaksanakan antara muka S1
public class A2 implements S2 { @Override public void show() { System.out.println("灵鸽七号"); }}
Kelas B2 melaksanakan antara muka S2 (Ling Ge No. 2):
Melaksanakan antara muka S1
public class B2 implements S2 { @Override public void show() { System.out.println("灵鸽七号"); }}
Kelas C2 melaksanakan antara muka S2 (Lingge 3):
Melaksanakan antara muka S1
public class C2 implements S2 { @Override public void show() { System.out.println("灵鸽七号"); }}
Kelas D2 melaksanakan antara muka S2 (Lingge 4):
melaksanakan antara muka S1
public class D2 implements S2 { @Override public void show() { System.out.println("灵鸽七号"); }}
Kelas E2 melaksanakan antara muka S2 (Lingge No. 5):
melaksanakan antara muka Ss
public class E2 implements S2 { @Override public void show() { System.out.println("灵鸽七号"); }}
Implementasi kelas F2 Antaramuka S2 (Lingge No. 6):
melaksanakan antara muka Ss
public class F2 implements S2 { @Override public void show() { System.out.println("灵鸽七号"); }}
Kelas G2 melaksanakan antara muka S2 (Lingge No. 7) :
Melaksanakan antara muka Ss
public class G2 implements S2 { @Override public void show() { System.out.println("灵鸽七号"); }}
Antara muka Zz (warisan Tujuh Wira):
Antara muka mengisytiharkan kaedah membuat pedang abc1() dan kaedah menaikkan merpati abc2()
public interface Zz { S1 abc1(String a); S2 abc2(String a);}
Kelas Nan melaksanakan antara muka Zz (Master) :
Laksanakan antara muka 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; }}
Kelas Nv melaksanakan antara muka Zz (Isteri Sarjana):
Laksanakan antara muka 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; }}
Ujian
Kelas ujian:
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(); }}
Pembelajaran yang disyorkan : " tutorial video java"
Atas ialah kandungan terperinci Penjelasan terperinci tentang corak kilang abstrak JAVA dengan contoh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!