


Analisis mendalam corak kilang Java: pelaksanaan tiga corak reka bentuk ciptaan
Corak Kilang ialah corak reka bentuk ciptaan yang biasa digunakan yang menyediakan cara untuk merangkum penciptaan objek untuk fleksibiliti dan kebolehselenggaraan yang lebih tinggi. Dalam pengaturcaraan Java, corak kilang sering digunakan untuk mencipta objek daripada jenis yang berbeza tanpa mendedahkan logik khusus untuk mencipta objek.
Artikel ini akan memberikan analisis mendalam tentang corak kilang Java dan membincangkan tiga kaedah pelaksanaan corak kilang.
1. Corak Kilang Mudah
Corak Kilang Mudah adalah salah satu corak kilang yang paling asas dan biasa. Ia melaksanakan penciptaan objek melalui kelas kilang, dan merangkum proses penciptaan objek tertentu dalam kelas kilang.
Berikut ialah contoh kod corak kilang ringkas:
public class SimpleFactory { public static Product createProduct(String type) { switch (type) { case "A": return new ConcreteProductA(); case "B": return new ConcreteProductB(); default: throw new IllegalArgumentException("Invalid product type: " + type); } } } public interface Product { void operation(); } public class ConcreteProductA implements Product { @Override public void operation() { System.out.println("This is product A."); } } public class ConcreteProductB implements Product { @Override public void operation() { System.out.println("This is product B."); } } // Client public class Main { public static void main(String[] args) { Product productA = SimpleFactory.createProduct("A"); Product productB = SimpleFactory.createProduct("B"); productA.operation(); productB.operation(); } }
Dalam kod di atas, SimpleFactory ialah kelas kilang yang mencipta objek produk tertentu berdasarkan jenis parameter yang diluluskan. Kemudian, pelanggan mendapat objek produk yang diperlukan dengan memanggil kaedah statik createProduct of SimpleFactory. Dengan menggunakan corak kilang, pelanggan boleh memisahkan proses penciptaan objek produk tertentu daripada kod pelanggan, memberikan fleksibiliti dan kebolehselenggaraan yang lebih tinggi.
Tetapi keburukan corak kilang yang ringkas ialah jika anda ingin menambah jenis produk baru, anda perlu mengubah suai kod kelas kilang. Ini melanggar "prinsip terbuka-tertutup", yang terbuka kepada sambungan dan tertutup kepada pengubahsuaian.
2. Corak Kaedah Kilang
Corak Kaedah Kilang ialah corak kilang yang lebih fleksibel Ia mentakrifkan antara muka kilang yang khusus dan membolehkan kelas kilang tertentu melaksanakan antara muka untuk mencipta pelbagai jenis objek.
Berikut ialah contoh kod corak kaedah kilang:
public interface Factory { Product createProduct(); } public class ConcreteFactoryA implements Factory { @Override public Product createProduct() { return new ConcreteProductA(); } } public class ConcreteFactoryB implements Factory { @Override public Product createProduct() { return new ConcreteProductB(); } } // Client public class Main { public static void main(String[] args) { Factory factoryA = new ConcreteFactoryA(); Factory factoryB = new ConcreteFactoryB(); Product productA = factoryA.createProduct(); Product productB = factoryB.createProduct(); productA.operation(); productB.operation(); } }
Dalam kod di atas, Kilang ialah antara muka kilang abstrak yang mentakrifkan kaedah untuk mencipta objek produk. ConcreteFactoryA dan ConcreteFactoryB ialah kelas kilang tertentu, masing-masing bertanggungjawab untuk mencipta objek produk tertentu. Pelanggan memperoleh objek produk yang diperlukan dengan membuat instance kelas kilang tertentu dan kemudian memanggil kaedah createProductnya.
Kelebihan corak kaedah kilang berbanding corak kilang yang ringkas ialah dengan memperkenalkan antara muka kilang dan kelas kilang tertentu, sistem boleh dikembangkan dan jenis produk baharu boleh ditambah tanpa mengubah kod sedia ada. Pada masa yang sama, corak kaedah kilang juga memenuhi "prinsip terbuka-tertutup".
3. Corak Kilang Abstrak
Corak Kilang Abstrak ialah corak reka bentuk ciptaan yang menyediakan antara muka untuk mencipta satu siri objek yang berkaitan atau saling bergantung tanpa menentukan kelas tertentu.
Berikut ialah contoh kod corak kilang abstrak:
public interface AbstractFactory { ProductA createProductA(); ProductB createProductB(); } public class ConcreteFactory1 implements AbstractFactory { @Override public ProductA createProductA() { return new ConcreteProductA1(); } @Override public ProductB createProductB() { return new ConcreteProductB1(); } } public class ConcreteFactory2 implements AbstractFactory { @Override public ProductA createProductA() { return new ConcreteProductA2(); } @Override public ProductB createProductB() { return new ConcreteProductB2(); } } public interface ProductA { void operationA(); } public interface ProductB { void operationB(); } public class ConcreteProductA1 implements ProductA { @Override public void operationA() { System.out.println("This is product A1."); } } public class ConcreteProductA2 implements ProductA { @Override public void operationA() { System.out.println("This is product A2."); } } public class ConcreteProductB1 implements ProductB { @Override public void operationB() { System.out.println("This is product B1."); } } public class ConcreteProductB2 implements ProductB { @Override public void operationB() { System.out.println("This is product B2."); } } // Client public class Main { public static void main(String[] args) { AbstractFactory factory1 = new ConcreteFactory1(); AbstractFactory factory2 = new ConcreteFactory2(); ProductA productA1 = factory1.createProductA(); ProductB productB1 = factory1.createProductB(); ProductA productA2 = factory2.createProductA(); ProductB productB2 = factory2.createProductB(); productA1.operationA(); productB1.operationB(); productA2.operationA(); productB2.operationB(); } }
Dalam kod di atas, AbstractFactory ialah antara muka kilang abstrak yang mentakrifkan satu siri kaedah untuk mencipta objek produk. ConcreteFactory1 dan ConcreteFactory2 ialah kelas kilang khusus, masing-masing bertanggungjawab untuk mencipta satu siri objek produk yang berkaitan. ProductA dan ProductB ialah antara muka produk abstrak yang mentakrifkan kaedah objek produk. ConcreteProductA1, ConcreteProductA2, ConcreteProductB1 dan ConcreteProductB2 ialah kelas produk tertentu, yang masing-masing bertanggungjawab untuk melaksanakan kaedah yang ditakrifkan oleh antara muka produk abstrak.
Kelebihan corak kilang abstrak ialah kod penciptaan produk boleh disembunyikan dalam kelas kilang tertentu Pelanggan hanya perlu mengambil berat tentang antara muka kilang abstrak dan tidak perlu mengambil berat tentang kilang dan pelaksanaan produk tertentu. Pada masa yang sama, corak kilang abstrak juga memenuhi "prinsip terbuka-tertutup".
Ringkasan
Corak kilang ialah corak reka bentuk biasa untuk mencipta objek dan digunakan secara meluas dalam pengaturcaraan Java. Artikel ini menganalisis tiga kaedah pelaksanaan corak kilang: corak kilang mudah, corak kaedah kilang dan corak kilang abstrak. Kaedah pelaksanaan yang berbeza sesuai untuk senario yang berbeza, dan model kilang yang sesuai boleh dipilih mengikut keperluan khusus.
Corak kilang memberikan fleksibiliti dan kebolehselenggaraan yang lebih tinggi dengan merangkum proses penciptaan objek, dan memenuhi "prinsip terbuka-tertutup". Ia ialah corak reka bentuk yang disyorkan yang boleh digunakan untuk meningkatkan kebolehskalaan dan kebolehselenggaraan kod anda.
Atas ialah kandungan terperinci Analisis mendalam corak kilang Java: pelaksanaan tiga corak reka bentuk ciptaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Penyelesaian masalah dan penyelesaian kepada perisian keselamatan syarikat yang menyebabkan beberapa aplikasi tidak berfungsi dengan baik. Banyak syarikat akan menggunakan perisian keselamatan untuk memastikan keselamatan rangkaian dalaman. …

Pemprosesan pemetaan medan dalam dok sistem sering menemui masalah yang sukar ketika melaksanakan sistem dok: bagaimana untuk memetakan medan antara muka sistem dengan berkesan ...

Apabila menggunakan Mybatis-Plus atau Rangka Kerja ORM yang lain untuk operasi pangkalan data, sering diperlukan untuk membina syarat pertanyaan berdasarkan nama atribut kelas entiti. Sekiranya anda secara manual setiap kali ...

Mula musim bunga menggunakan versi IntelliJideaultimate ...

Penyelesaian untuk menukar nama kepada nombor untuk melaksanakan penyortiran dalam banyak senario aplikasi, pengguna mungkin perlu menyusun kumpulan, terutama dalam satu ...

Penukaran objek dan tatasusunan Java: Perbincangan mendalam tentang risiko dan kaedah penukaran jenis cast yang betul Banyak pemula Java akan menemui penukaran objek ke dalam array ...

Penjelasan terperinci mengenai reka bentuk jadual SKU dan SPU di platform e-dagang Artikel ini akan membincangkan isu reka bentuk pangkalan data SKU dan SPU dalam platform e-dagang, terutamanya bagaimana menangani jualan yang ditentukan pengguna ...

Apabila menggunakan tkmybatis untuk pertanyaan pangkalan data, bagaimana dengan anggun mendapatkan nama pembolehubah kelas entiti untuk membina keadaan pertanyaan adalah masalah biasa. Artikel ini akan ...
