1. Deskripsi adegan
Pola pembangun sama dengan pola pabrik dan pola pabrik abstrak, dan digunakan untuk membuat objek kelas yang diwariskan.
Mode Pabrik: Mode Mode Desain Java Mode Pabrik
Pola pabrik abstrak: pola desain java pola pabrik abstrak
Perbedaannya adalah bahwa dalam mode pabrik, setiap subkelas mengimplementasikan antarmuka dan membuat objek subkelas melalui kelas pabrik; Sementara dalam mode pembangun, setiap subkelas memiliki kelas pembangunnya, dan membuat objek kelas induk yang berbeda melaluinya, dan pada akhirnya mengimplementasikan polimorfisme. Faktanya, kelas subkelas dan orang tua tidak ada dalam kode.
Mengambil alat akuisisi data instrumen sebagai contoh, dalam mode pabrik, tentukan antarmuka "alat akuisisi data instrumen", tentukan subkelas "Alat Akuisisi Data File PDF" dan "Alat Akuisisi Data File Excel", dan mengimplementasikan antarmuka di subkelas. Objek subkelas dibuat melalui kelas pabrik (apakah itu kelas pabrik statis atau kelas pabrik abstrak), dan objek -objek ini memiliki ekspresi yang berbeda, yaitu, polimorfisme.
Dalam mode builder, tentukan kelas induk "alat akuisisi data instrumen", dan kemudian gunakan "kelas pembangun dari alat akuisisi data file PDF" dan "Kelas Pembangun dari Alat Akuisisi Data File Excel" untuk menetapkan metode ekspresi yang berbeda (menetapkan nilai yang berbeda ke bidang, dll.), Dan akhirnya mencapai polimorfisme.
Dalam mode pembangun, sutradara seperti sutradara. Ini memanggil pembangun pembangun untuk menyelesaikan pembuatan objek kelas. Penelepon hanya bisa menelepon direktur, seperti yang ditunjukkan pada gambar di bawah ini:
Tentu saja, model pabrik secara harfiah digunakan untuk membuat objek, sedangkan model pembangun secara harfiah digunakan untuk membangun objek yang berbeda. Keduanya dapat mencapai fungsi yang sama, tetapi skenario aplikasi keduanya bisa sangat berbeda.
Model pabrik digunakan untuk membuat objek kelas sederhana, sedangkan model pembangun digunakan untuk membangun objek kelas yang kompleks. Informasi spesifik dapat dipelajari dari Baidu.
Saat memperluas, misalnya, tambahkan pengumpulan data file kata dan buat kelas pembangunnya, yang mengimplementasikan pembuatan program pengumpulan data file kata; Saat menelepon, Anda dapat menyebutnya menggunakan kelas WordBuilder.
2. Kode Sampel
Kelas (Parent):
paket lims.designpatterndemo.builderdemo; peralatan kelas publikDatacapture {private string filepath; Private String EquipmentData; // string publik getFilePath () {return this.filePath; } public void setFilePath (string filePath) {this.filePath = filepath; } public string getequipmentData () {return this.equipmentData; } public void setequipmentData (String EquipmentData) {this.equipmentData = EquipmentData; }}Antarmuka pembangun:
Paket lims.designpatterndemo.builderdemo; antarmuka public EquipmentDataCaptureBuilder {// komponen void buildFilePath (); void buildequipmentData (); // Perkumpulan EquipmentDataCapture BuildequipmentDataCapture ();}Kategori Pembuat Pengumpulan Data PDF:
Paket lims.designpatterndemo.builderdemo; kelas publik PdffileCaptureBuilder mengimplementasikan peralatanDataCaptureBuilder {// EquipmentDataCapture Capture; // Bangun publik PdffileCaptureBuilder () {capture = new EquipmentDataCapture (); } // @Override public void buildFilePath () {capture.setFilePath (". PDF"); } @Override public void buildequipmentData () {capture.setequipmentData ("konten file pdf"); } @Override Public EquipmentDataCapture buildequipmentDataCapture () {return capture; }}Excel Data Acquisition Builder:
Paket lims.designpatterndemo.builderdemo; kelas publik excelfilecaptureBuilder mengimplementasikan peralatanDataCaptureBuilder {// capture equipceDatacapture; // buat publicelfileCaptureBuilder () {capture = new EquipmentDataCapture (); } @Override public void buildFilePath () {capture.setFilePath (". Xlsx"); } @Override public void buildequipmentData () {capture.setequipmentData ("Konten file excel"); } @Override Public EquipmentDataCapture buildequipmentDataCapture () {return capture; }}Kelas sutradara, dapat dengan mudah dipahami sebagai kelas sutradara:
Paket lims.designpatterndemo.builderdemo; peralatan kelas publik Datacapturedirector {Public EquipmentDataCapture ConstructeQiupmentDataCapture (Builder EquipmentDataCaptureBuilder) {builder.buildfilePath (); builder.buildequipmentData (); EquipmentDataCapture capture = builder.buildequipmentDatacapture (); return capture; }}Contoh sisi panggilan:
Paket lims.designpatterndemo.builderdemo; kelas publik builderdemo {public static void main (string [] args) {EquipmentDataCapturedirector direcotr = EquipmentDataCapturedIrector (); EquipmentDataCaptureBuilder Builder = PdffileCaptureBuilder baru (); builder = excelfilecaptureBuilder () baru; EquipmentDataCapture capture = direcotr.constructeqiupmentDatacapture (builder); System.out.println (capture.getequipmentData ()); }}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.