1. Konsep model pembangun
Definisi: Pisahkan konstruksi objek yang kompleks dari representasinya sehingga proses konstruksi yang sama dapat membuat representasi yang berbeda;
Inti: Konstruksi dan representasi terpisah, representasi yang berbeda berbeda dari model pabrik abstrak saat membangun:
(1) Mirip dengan pola pabrik abstrak, karena juga dapat membuat objek yang kompleks. Perbedaan utama adalah bahwa model pembangun berfokus pada membangun objek yang kompleks langkah demi langkah, fokus pada urutan jenis bagian dan proses perakitan. Model pabrik abstrak berfokus pada beberapa seri objek produk (sederhana atau kompleks). Pola pembangun mengembalikan produk pada langkah terakhir, dan untuk pabrik abstrak, produk segera kembali.
(2) Dalam mode pembangun, ada pengawas yang mengelola pembangun. Pengguna menghubungi pengawas, dan pengawas menghubungi pembangun dan akhirnya mendapatkan produk. Artinya, model konstruksi dapat memaksa proses konstruksi langkah demi langkah.
2. Perannya
(1) Peran pembangun abstrak: Peran ini digunakan untuk mengatur berbagai komponen produk dan abstrak TI, yang umumnya tidak tergantung pada logika aplikasi.
(2) Peran pembangun beton:
Peran ini mengimplementasikan semua metode yang didefinisikan dalam pembangun abstrak dan mengembalikan instance produk bawaan.
(3) Peran Produk (Produk):
Peran ini adalah objek yang kompleks dalam konstruksi, dan akan ada lebih dari satu kategori produk dalam suatu sistem. Produk -produk ini tidak selalu memiliki antarmuka publik dan dapat sepenuhnya tidak terkait.
(4) Peran Direktur:
Karakter ini bertanggung jawab untuk mengatur urutan modul yang ada dan kemudian memberi tahu pembangun pembangun untuk mulai membangun.
3. Contoh
pembangun antarmuka publik {void buildparta (); batal buildpartb (); void buildpartc (); } BuilderImpl kelas publik mengimplementasikan builder {@Override public void buildparta () {System.out.println ("Bangun bagian A"); } @Override public void buildpartb () {System.out.println ("Build Part B"); } @Override public void buildpartc () {System.out.println ("Build Part C"); }} BuilderImpl2 kelas publik mengimplementasikan builder {@Override public void buildparta () {System.out.println ("Bangun Bagian AA"); } @Override public void buildpartb () {System.out.println ("Build Part BB"); } @Override public void buildpartc () {System.out.println ("Build Part CC"); }} / ** * Komandan: panduan cara membangun * pembangun kombinasi */ direktur kelas publik {private builder builder; Direktur Publik (Builder Builder) {this.builder = builder; } / *** Metode Konstruksi: Menentukan proses konstruksi* Jika proses lain diperlukan untuk mengimplementasikannya, Anda dapat melakukan satu komandan baru* / public void construct () {System.out.println ("Pembangun Perintah Direktur untuk konstruksi"); builder.buildparta (); builder.buildpartb (); builder.buildpartc (); }} Direktur Kelas Publik2 {Private Builder Builder; Public Director2 (Builder Builder) {this.builder = builder; } / *** Metode Konstruksi: Menentukan proses konstruksi* Jika proses lain diperlukan untuk mengimplementasikannya, Anda dapat baru satu komandan direktur* / public void construct () {System.out.println ("Director2 Commands Builder for Construction"); builder.buildpartb (); builder.buildpartc (); builder.buildparta (); }} tes kelas publik {public static void main (string [] args) {builder builder = new builderImpl (); Direktur Direktur = Direktur Baru (Pembangun); / * * Proses konstruksi yang sama, modul yang berbeda (BuildParta, BuildPartb, BuildPartc) Implementasi, implementasi satu pembangun baru * Proses konstruksi yang berbeda, satu direktur baru * proses konstruksi yang berbeda, implementasi modul yang berbeda, direktur baru, Builder baru */ director.construct (); System.out.println (""); Builder builder2 = baru builderImpl2 (); Direktur Direktur2 = Direktur Baru (Builder2); Director2.construct (); System.out.println (""); Builder build3 = baru builderImpl2 (); Director2 Director3 = New Director2 (Builder3); direktur3.construct (); }}Mencetak:
Pembangun Komando Direktur untuk Konstruksi Konstruksi Konstruksi Bagian A Konstruksi Bagian B Konstruksi Bagian C Pembangun Komando Direktur Untuk Konstruksi Suku Cadang AA Konstruksi Bagian BB Konstruksi Bagian CC Direktur2 Pembangun Komando Untuk Konstruksi BB BB Konstruksi Bagian CC Konstruksi Bagian AA AA
4. Keuntungan dan Kekurangan (1) Keuntungan:
A. Dapat memungkinkan Anda untuk mengubah representasi internal produk.
B. merangkum kode bangunan dan perwakilan.
C. Memberikan kontrol atas langkah -langkah di luar proses konstruksi.
(2) Kekurangan:
A. Ada kebutuhan untuk membuat berbagai jenis produk yang secara individual.
5. Skenario Penggunaan:
(1) Ketika algoritma untuk membuat objek yang kompleks harus tidak tergantung pada komponen objek dan bagaimana mereka dirakit.
(2) Ketika proses konstruksi harus memungkinkan objek yang dibangun memiliki representasi yang berbeda (metode yang sama, urutan eksekusi yang berbeda, dan hasil yang berbeda dihasilkan).