Rumah >Java >javaTutorial >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!