Rumah >Java >javaTutorial >Penjelasan terperinci tentang corak kilang Java: kilang mudah, kaedah kilang dan kilang abstrak
Penjelasan terperinci corak kilang Java: kilang ringkas, kaedah kilang dan kilang abstrak
Corak kilang ialah corak reka bentuk yang biasa digunakan, yang digunakan untuk mencipta objek secara dinamik mengikut keperluan yang berbeza, memisahkan penciptaan dan penggunaan objek, dan meningkatkan kebolehgunaan semula kod dan kebolehskalaan. Di Jawa, terdapat tiga bentuk utama corak kilang: kilang mudah, kaedah kilang dan kilang abstrak.
1. Corak Kilang Mudah
Corak kilang yang ringkas ialah corak kilang yang paling asas dan bentuk paling ringkas. Ia mencipta objek melalui kelas kilang dan menentukan jenis objek yang hendak dibuat berdasarkan parameter yang berbeza.
Pertama, tentukan kelas produk abstrak yang diwarisi oleh semua kelas produk konkrit. Kemudian, buat kelas kilang yang mengandungi kaedah statik yang mengembalikan produk khusus yang sepadan berdasarkan parameter yang berbeza.
Berikut adalah contoh kod yang mensimulasikan proses pengeluaran kereta:
// 定义抽象产品类 abstract class Car { public abstract void produce(); } // 定义具体产品类 class BenzCar extends Car { public void produce() { System.out.println("生产奔驰汽车"); } } class BMWCar extends Car { public void produce() { System.out.println("生产宝马汽车"); } } // 实现工厂类 class CarFactory { public static Car createCar(String brand) { if (brand.equals("Benz")) { return new BenzCar(); } else if (brand.equals("BMW")) { return new BMWCar(); } else { throw new IllegalArgumentException("Unsupported brand:" + brand); } } } // 测试代码 public class SimpleFactoryPatternDemo { public static void main(String[] args) { Car benz = CarFactory.createCar("Benz"); benz.produce(); Car bmw = CarFactory.createCar("BMW"); bmw.produce(); } }
Dengan memanggil kaedah CarFactory.createCar
, objek kereta daripada jenama yang berbeza boleh dibuat mengikut parameter yang berbeza.
Kelebihan corak kilang yang ringkas ialah ia mudah difahami dan sesuai untuk senario yang mudah. Tetapi kelemahannya ialah ia melanggar prinsip keterbukaan dan penutupan Apabila produk baru ditambah, kod kelas kilang perlu diubah suai.
2. Corak Kaedah Kilang
Corak Kaedah Kilang ialah lanjutan daripada Corak Kilang Mudah Ia memperkenalkan kelas kilang abstrak untuk mentakrifkan kaedah, dan penciptaan produk khusus dilaksanakan oleh kelas kilang subkelas. Setiap kelas kilang konkrit hanya bertanggungjawab untuk mencipta satu jenis produk.
Pertama, tentukan kelas produk abstrak, yang juga diwarisi oleh semua kelas produk konkrit. Kemudian, buat kelas kilang abstrak yang mengandungi kaedah abstrak untuk mencipta produk. Setiap kelas kilang konkrit bertanggungjawab untuk mencipta produk.
Berikut ialah contoh kod yang menyerupai proses pengeluaran telefon bimbit:
// 定义抽象产品类 abstract class Phone { public abstract void produce(); } // 定义具体产品类 class ApplePhone extends Phone { public void produce() { System.out.println("生产苹果手机"); } } class HuaweiPhone extends Phone { public void produce() { System.out.println("生产华为手机"); } } // 定义抽象工厂类 abstract class PhoneFactory { public abstract Phone createPhone(); } // 定义具体工厂类 class ApplePhoneFactory extends PhoneFactory { public Phone createPhone() { return new ApplePhone(); } } class HuaweiPhoneFactory extends PhoneFactory { public Phone createPhone() { return new HuaweiPhone(); } } // 测试代码 public class FactoryMethodPatternDemo { public static void main(String[] args) { PhoneFactory appleFactory = new ApplePhoneFactory(); Phone applePhone = appleFactory.createPhone(); applePhone.produce(); PhoneFactory huaweiFactory = new HuaweiPhoneFactory(); Phone huaweiPhone = huaweiFactory.createPhone(); huaweiPhone.produce(); } }
Dengan melaksanakan kelas kilang khusus yang berbeza, setiap kelas kilang bertanggungjawab untuk mencipta jenis objek telefon bimbit. Menggunakan corak kaedah kilang, anda boleh menambah lebih banyak siri produk dengan mudah tanpa mengubah suai kod sedia ada.
Kelebihan corak kaedah kilang ialah ia mematuhi prinsip terbuka dan tertutup Setiap kelas kilang tertentu hanya bertanggungjawab untuk mencipta satu produk dan mudah dikembangkan. Tetapi kelemahannya ialah ia meningkatkan kerumitan sistem dan memerlukan kelas kilang tertentu untuk ditakrifkan untuk setiap produk.
3. Corak Kilang Abstrak
Corak kilang abstrak adalah lanjutan corak kaedah kilang Ia memperkenalkan kelas kilang abstrak untuk mentakrifkan satu set kaedah, setiap kaedah bertanggungjawab untuk mencipta siri produk. Setiap kelas kilang konkrit bertanggungjawab untuk mencipta keluarga produk.
Pertama, tentukan kelas produk abstrak dan kelas kilang abstrak Setiap kelas kilang abstrak mengandungi pelbagai kaedah abstrak untuk mencipta produk. Kemudian, cipta kelas produk khusus dan kelas kilang khusus, dan laksanakan kelas produk abstrak dan kelas kilang masing-masing.
Berikut ialah contoh kod yang menyerupai proses pengeluaran TV dan peti sejuk:
// 定义抽象产品类 abstract class TV { public abstract void produce(); } abstract class Refrigerator { public abstract void produce(); } // 定义具体产品类 class SamsungTV extends TV { public void produce() { System.out.println("生产三星电视"); } } class TCLTV extends TV { public void produce() { System.out.println("生产TCL电视"); } } class HaierRefrigerator extends Refrigerator { public void produce() { System.out.println("生产海尔冰箱"); } } class GreeRefrigerator extends Refrigerator { public void produce() { System.out.println("生产格力冰箱"); } } // 定义抽象工厂类 abstract class ApplianceFactory { public abstract TV createTV(); public abstract Refrigerator createRefrigerator(); } // 定义具体工厂类 class SamsungFactory extends ApplianceFactory { public TV createTV() { return new SamsungTV(); } public Refrigerator createRefrigerator() { return new HaierRefrigerator(); } } class TCLFactory extends ApplianceFactory { public TV createTV() { return new TCLTV(); } public Refrigerator createRefrigerator() { return new GreeRefrigerator(); } } // 测试代码 public class AbstractFactoryPatternDemo { public static void main(String[] args) { ApplianceFactory samsungFactory = new SamsungFactory(); TV samsungTV = samsungFactory.createTV(); Refrigerator haierRefrigerator = samsungFactory.createRefrigerator(); samsungTV.produce(); haierRefrigerator.produce(); ApplianceFactory tclFactory = new TCLFactory(); TV tclTV = tclFactory.createTV(); Refrigerator greeRefrigerator = tclFactory.createRefrigerator(); tclTV.produce(); greeRefrigerator.produce(); } }
Dengan melaksanakan kelas kilang konkrit yang berbeza, setiap kelas kilang konkrit bertanggungjawab untuk mencipta siri produk. Menggunakan corak kilang abstrak, anda boleh menambah lebih banyak siri produk dengan mudah tanpa mengubah suai kod sedia ada.
Kelebihan corak kilang abstrak ialah ia mematuhi prinsip terbuka dan tertutup, mudah dikembangkan, dan boleh mengekalkan korelasi antara produk. Tetapi kelemahannya ialah apabila menambah siri produk baharu, kod kelas kilang abstrak perlu diubah suai.
Ringkasan:
Corak kilang ialah corak reka bentuk yang biasa digunakan untuk mencipta objek secara dinamik mengikut keperluan yang berbeza. Terdapat tiga corak kilang utama di Jawa: kilang ringkas, kaedah kilang dan kilang abstrak. Corak kilang ringkas ialah bentuk paling asas Corak kaedah kilang memperkenalkan kelas kilang abstrak berdasarkannya Corak kilang abstrak memanjangkan corak kaedah kilang dan memperkenalkan satu set kaedah untuk mencipta siri produk. Mengikut senario dan keperluan aplikasi tertentu, memilih corak kilang yang sesuai boleh meningkatkan kebolehgunaan semula dan kebolehskalaan kod.
Atas ialah kandungan terperinci Penjelasan terperinci tentang corak kilang Java: kilang mudah, kaedah kilang dan kilang abstrak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!