Rumah > Java > javaTutorial > Perbandingan dan senario aplikasi: Perbandingan corak kilang dan corak reka bentuk lain di Jawa

Perbandingan dan senario aplikasi: Perbandingan corak kilang dan corak reka bentuk lain di Jawa

王林
Lepaskan: 2023-12-27 09:05:37
asal
1272 orang telah melayarinya

Perbandingan dan senario aplikasi: Perbandingan corak kilang dan corak reka bentuk lain di Jawa

Perbandingan dan senario aplikasi Corak Kilang dan corak reka bentuk lain dalam Java

Dalam proses pembangunan perisian, corak reka bentuk ialah penyelesaian yang terbukti dan boleh digunakan semula yang menerangkan satu set interaksi bersama dan objek untuk menyelesaikan perisian tertentu masalah reka bentuk. Corak reka bentuk boleh membantu pembangun mengatur dan mengurus kod dengan lebih baik, serta meningkatkan kebolehbacaan, kebolehselenggaraan dan kebolehskalaan kod. Di Jawa, terdapat banyak corak reka bentuk yang biasa digunakan, antaranya corak kilang merupakan corak reka bentuk yang sangat penting dan biasa digunakan.

Corak kilang ialah corak reka bentuk ciptaan yang menyediakan amalan terbaik untuk mencipta objek. Ia mentakrifkan kilang abstrak, yang digunakan untuk mencipta objek kilang konkrit, dan kilang konkrit melaksanakan antara muka kilang abstrak dan bertanggungjawab untuk mencipta objek produk tertentu. Corak kilang menjadikan sistem lebih berskala dengan memisahkan penciptaan dan penggunaan objek, dan menjadikan kod lebih fleksibel dan lebih mudah untuk diselenggara.

Serupa dengan corak kilang ialah corak kilang abstrak dan corak tunggal. Corak kilang abstrak menambah konsep keluarga produk kepada corak kilang Ia mengabstrakkan penciptaan produk ke dalam kaedah abstrak, yang dilaksanakan oleh kilang produk tertentu. Corak tunggal hanya boleh mencipta satu objek contoh Ia menswastakan kaedah pembinaan untuk memastikan objek itu hanya boleh dibuat dengan cara tertentu.

Di bawah kami menggunakan contoh kod khusus untuk menunjukkan perbandingan dan senario aplikasi corak kilang dan corak reka bentuk lain. Katakan kita perlu mencipta kelas kalkulator yang merangkumi dua operasi: penambahan dan pendaraban.

Pertama, mari kita lihat situasi mencipta kalkulator menggunakan kaedah biasa:

public class Calculator {
    private int num1;
    private int num2;

    public Calculator(int num1, int num2) {
        this.num1 = num1;
        this.num2 = num2;
    }

    public int add() {
        return num1 + num2;
    }

    public int multiply() {
        return num1 * num2;
    }
}
Salin selepas log masuk

Dalam kes ini, kita menulis logik untuk mencipta objek secara terus dalam kelas Kalkulator, jadi jika kita perlu menambah kaedah pengiraan lain, kita perlu Ubah suai kod kelas Kalkulator. Ini memusnahkan kebolehskalaan dan kebolehselenggaraan kod.

Seterusnya, kami menggunakan corak kilang untuk memfaktorkan semula:

Pertama, cipta antara muka kilang abstrak CalculatorFactory:

public interface CalculatorFactory {
    Calculator createCalculator();
}
Salin selepas log masuk

Kemudian, buat kelas kilang konkrit AdditionFactory dan MultiplicationFactory:

public class AdditionFactory implements CalculatorFactory {
    private int num1;
    private int num2;

    public AdditionFactory(int num1, int num2) {
        this.num1 = num1;
        this.num2 = num2;
    }

    public Calculator createCalculator() {
        return new Calculator(num1, num2) {
            public int calculate() {
                return num1 + num2;
            }
        };
    }
}

public class MultiplicationFactory implements CalculatorFactory {
    private int num1;
    private int num2;

    public MultiplicationFactory(int num1, int num2) {
        this.num1 = num1;
        this.num2 = num2;
    }

    public Calculator createCalculator() {
        return new Calculator(num1, num2) {
            public int calculate() {
                return num1 * num2;
            }
        };
    }
}
Salin selepas log masuk

Akhir sekali, gunakan corak kilang untuk mencipta kilang objek:

public class Main {
    public static void main(String[] args) {
        CalculatorFactory additionFactory = new AdditionFactory(2, 3);
        CalculatorFactory multiplicationFactory = new MultiplicationFactory(2, 3);

        Calculator additionCalculator = additionFactory.createCalculator();
        Calculator multiplicationCalculator = multiplicationFactory.createCalculator();

        System.out.println("Addition: " + additionCalculator.calculate());
        System.out.println("Multiplication: " + multiplicationCalculator.calculate());
    }
}
Salin selepas log masuk

Melalui corak kilang, kami mengabstrakkan logik penciptaan objek, dan membiarkan kelas kilang tertentu bertanggungjawab untuk mencipta objek kalkulator yang berbeza, sekali gus mencapai pemisahan dan penyahgandingan kod. Jika anda perlu menambah kaedah pengiraan lain, anda hanya perlu mencipta kelas kilang tertentu yang sepadan.

Ringkasnya, corak kilang ialah corak reka bentuk yang sangat penting dan biasa digunakan yang boleh meningkatkan kebolehskalaan dan kebolehselenggaraan kod. Berbanding dengan corak kilang abstrak dan corak tunggal, corak kilang digunakan terutamanya untuk mencipta objek, manakala corak kilang abstrak digunakan untuk mencipta objek keluarga produk, dan corak tunggal digunakan untuk mencipta objek tunggal. Dalam pembangunan sebenar, memilih corak reka bentuk yang sesuai mengikut keperluan dan senario tertentu boleh meningkatkan kualiti dan kebolehselenggaraan kod.

Atas ialah kandungan terperinci Perbandingan dan senario aplikasi: Perbandingan corak kilang dan corak reka bentuk lain di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan