Takrifan Corak Pembina: merujuk kepada reka bentuk yang memisahkan pembinaan objek kompleks daripada perwakilannya, supaya proses pembinaan yang sama boleh mencipta corak yang berbeza ialah dipanggil corak pembina. Ia memecahkan objek kompleks kepada berbilang objek mudah dan kemudian membinanya langkah demi langkah. Ia memisahkan perubahan daripada kebolehubah, iaitu komponen produk kekal tidak berubah, tetapi setiap bahagian boleh dipilih secara fleksibel.
1. Enkapsulasi yang baik, pemisahan pembinaan dan persembahan.
2. Kebolehskalaan yang baik, setiap pembina khusus adalah bebas antara satu sama lain, yang kondusif untuk penyahgandingan sistem.
3. Pelanggan tidak perlu mengetahui butiran komposisi dalaman produk secara beransur-ansur tanpa sebarang kesan ke atas modul lain, menjadikannya lebih mudah untuk mengawal risiko terperinci.
1. Komponen produk mestilah sama, yang mengehadkan skop penggunaannya.
2. Jika perubahan dalaman produk adalah rumit, pembina juga perlu membuat pengubahsuaian serentak, yang akan menyebabkan kos penyelenggaraan yang lebih tinggi pada masa hadapan.
Mod pembina dan mod kilang mempunyai fokus yang berbeza: mod pembina memfokuskan pada proses pemasangan komponen, manakala mod kaedah kilang lebih memfokuskan pada proses penciptaan komponen. Tetapi kedua-duanya boleh digunakan bersama.
Kes: Miracle Doctor Doudou Alchemy
Peranan Produk (Produk): Pil
Pembina Abstrak: Resipi Alkimia Abstrak
Pembina Konkrit: Resipi Concrete Alchemy
Pengarah: Miracle Doctor Doudou
Miracle Doctor Doudou memperhalusi elixir sembilan pusingan dan Pil Ilahi Tai Void
Nota: Untuk menyelamatkan masalah , kandungan resipi pil yang disebutkan di sini hanya mengandungi nama dan kesan pil, dan tidak termasuk bahan atau sebagainya.
Kelas elixir mengisytiharkan dua atribut: nama dan kesan elixir
public class Dan { /* cailiao 丹药的名称 danhuo 丹药的效果*/ private String name; private String xiaoguo; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getXiaoguo() { return xiaoguo; } public void setXiaoguo(String xiaoguo) { this.xiaoguo = xiaoguo; } }
Kelas abstrak, objek elixir baharu , mengisytiharkan bahawa dua kaedah abstrak adalah menamakan eliksir dan memberikan eliksir kesannya, dan terdapat juga kaedah untuk menjana eliksir.
//抽象丹方 abstract class DanFang { Dan dan = new Dan(); public abstract void name(); public abstract void xiaoguo(); public Dan getDan() { return dan; } }
Kelas resipi khusus mewarisi kelas resipi dan melaksanakan dua kaedah abstrak.
//九转仙丹丹方 public class JiuZhuan extends DanFang { @Override public void name() { dan.setName("九转仙丹"); } @Override public void xiaoguo() { dan.setXiaoguo("原地成仙"); } }
Kelas Danfang khusus mewarisi kelas Danfang dan melaksanakan dua kaedah abstrak.
//太虚化神丹丹方 public class Taixu extends DanFang { @Override public void name() { dan.setName("太虚化神丹"); } @Override public void xiaoguo() { dan.setXiaoguo("意念化神"); } }
Isytiharkan atribut elixir, kaedah pembina dengan parameter dan kaedah alkimia.
public class DouDou { private final DanFang danLu; public DouDou(DanFang danLu) { this.danLu = danLu; } //炼丹方法 public Dan lian() { //放入材料 danLu.name(); //释放丹火 danLu.xiaoguo(); //成丹 return danLu.getDan(); } }
Memurnikan dua eliksir.
public class Demo { public static void main(String[] args) { //炼制九转仙丹 //new一个九转仙丹的丹方 DanFang jiu = new JiuZhuan(); //把丹方给豆豆 DouDou dou = new DouDou(jiu); //炼丹生成丹药 Dan dan = dou.lian(); System.out.printf("丹药名称:%s 丹药效果:%s", dan.getName(), dan.getXiaoguo()); System.out.println(); //炼制太虚化神丹 //new一个九转仙丹的丹方 DanFang tai = new Taixu(); //把丹方给豆豆 DouDou dous = new DouDou(tai); //炼丹生成丹药 Dan dans = dous.lian(); System.out.printf("丹药名称:%s 丹药效果:%s", dans.getName(), dans.getXiaoguo()); } }
Atas ialah kandungan terperinci Analisis kes corak pembina di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!