1. Deskripsi adegan
Terhubung dengan "pola desain java (i) pola pabrik"
Salah satu kelemahan dari model pabrik adalah bahwa ia menghancurkan prinsip tertutup kelas. Misalnya, jika Anda perlu menambahkan pengumpulan data untuk file kata, ikuti langkah -langkah berikut:
Langkah 2 memodifikasi kelas pabrik. Jika kelas pabrik perlu dimodifikasi untuk setiap kelas implementasi tambahan, maka ini tidak masuk akal.
Solusinya adalah menggunakan kelas abstrak pabrik, membuat kelas pabriknya untuk setiap kelas implementasi, dan menambahkan antarmuka pabrik sehingga setiap kelas pabrik mengimplementasikan antarmuka.
Setelah menggunakan pabrik abstrak, langkah -langkah di atas diubah menjadi:
Setelah modifikasi, karena kelas pabrik diabstraksi dan antarmuka pabrik didefinisikan, kode asli tidak lagi diperlukan untuk dimodifikasi saat menambahkan kelas implementasi baru, dan implementasi asli tidak dihancurkan.
Seperti yang ditunjukkan pada gambar di bawah ini:
2. Kode Sampel
Antarmuka akuisisi data instrumen:
Paket lims.designpatternDemo.AbstractFactoryDemo; Public Interface EquipmentDataCapture {public String capture (string filepath);}Kelas Koleksi File PDF:
Paket lims.designpatternDemo.AbstractFactoryDemo; Public Class PdffileCapture mengimplementasikan EquipmentDataCapture {@Override Public String Capture (String FilePath) {return "Konten File PDF"; }}Kelas Koleksi File Excel:
Paket lims.designpatternDemo.abstractFactoryDemo; kelas publik excelfileCapture mengimplementasikan peralatanDataCapture {@Override public string capture (string filePath) {return "content file excel"; }}Abstrak pabrik, yaitu antarmuka pabrik:
Paket lims.designpatternDemo.AbstractFactoryDemo; Public Interface EquipmentDataCaptureFactory {Public EquipmentDataCapture getCapture (); }Pabrik Pengumpulan File PDF:
Paket lims.designpatternDemo.AbstractFactoryDemo; Public Class PdffileCaptureFactory mengimplementasikan EquipmentDataCaptureFactory {@Override Public EquipmentDataCapture getCapture () {return PdffileCapture baru (); }}Excel File Collection Factory:
Paket lims.designpatternDemo.AbstractFactoryDemo; kelas publik excelfileCaptureFactory mengimplementasikan peralatanDataCaptureFactory {@Override Public EquipmentDataCapture getCapture () {return new ExcelfileCapture (); }}Contoh panggilan:
Paket lims.designpatternDemo.AbstractFactoryDemo; kelas publik AbstractFactoryDemo {public static void main (string [] args) {EquipmentDataCaptureFactory fabric = new PdffileCaptureFactory (); fabric = excelfileCaptureFactory () baru; EquipmentDataCapture capture = fabric.getCapture (); String filecontent = capture.capture (""); System.out.println (filecontent); }}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.