Rumah >Java >javaTutorial >Analisis kes corak pembina di Jawa

Analisis kes corak pembina di Jawa

王林
王林ke hadapan
2023-05-10 10:40:151459semak imbas

Apakah itu Corak Pembina

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.

Kelebihan

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.

Kelemahan

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.

Mata Pengetahuan

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.

Pelaksanaan Corak Pembina

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.

Elixir

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;
    }
}

Elixir abstrak

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;
    }

}

Resipi elixir sembilan pusingan

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("原地成仙");
    }
}

Taixuhuashendandanfang

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("意念化神");
    }
}

Doudou, doktor ajaib

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();
    }
}

Ujian

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());
    }
}

Analisis kes corak pembina di Jawa

Atas ialah kandungan terperinci Analisis kes corak pembina di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam