Mode Builder di Delphi memperluas mode Builder dasar. Untuk informasi lebih lanjut tentang mode Builder, silakan merujuk ke [Gam+]
Pisahkan konstruksi objek yang kompleks dari representasinya sehingga proses konstruksi yang sama dapat menghasilkan representasi yang berbeda
Seorang pembangun secara konseptual mirip dengan pabrik abstrak. Namun perbedaannya adalah generator menghasilkan berbagai komponen dari satu kelas kompleks dengan mereferensikan konstruktor yang berbeda, sedangkan pabrik abstrak memungkinkan Anda membuat seluruh kelas konkret. Misalnya: seorang pembangun dapat membangun rumah, villa, dan kantor. Anda dapat menyewa pembangun yang berbeda untuk membangun rumah bata dan rumah kayu. Meski Anda bisa menentukan bentuk dan ukuran rumah. Dan tulang rusuk lainnya digunakan untuk membangun sebagian rumah, tetapi tidak seluruhnya. Misalnya membangun jendela, pintu, dan tempat parkir.
Contoh berikut pertama-tama memperkenalkan kelas abstrak TabstractFormBuilder dan dua subkelas konkritnya TredFormBuilder dan TblueFormBuilder. TabstractFormBuilder mendeklarasikan beberapa konstruktor kelas
jenis
TAbstractFormBuilder = kelas
Pribadi
Bentuk F: Bentuk T;
procedure BuilderFormClose(Pengirim: TObject; var Action: TCloseAction);
terlindung
fungsi GetForm: TForm;
publik
prosedur CreateForm(Pemilik: TComponent);
prosedur CreateSpeedButton; virtual;
prosedur BuatEdit;
prosedur CreateLabel; virtual;
Formulir properti: TForm baca GetForm;
akhir;
jenis
TRedFormBuilder = kelas(TAbstractFormBuilder)
pribadi
FNextLeft, FNextTop: Integer;
publik
prosedur CreateForm(Pemilik: TComponent);
prosedur CreateSpeedButton menimpa;
prosedur BuatEdit;
prosedur BuatEdit;
akhir;
jenis
TBlueFormBuilder = kelas(TAbstractFormBuilder)
pribadi
FNextLeft, FNextTop: Integer;
publik
prosedur CreateForm(Pemilik: TComponent);
prosedur CreateSpeedButton menimpa;
prosedur BuatEdit;
prosedur CreateLabel menimpa;
akhir;
Di antara antarmuka di atas:
? Deklarasikan antarmuka untuk membuat objek produk abstrak: TAbstractFormBuilder
¨ Kelas TAbstractFormBuilder memiliki tiga metode pabrik abstrak CreateForm, CreateSpeedButton, CreateEdit, CreateEdit
? TBlueFormBuilder dan TRedFormBuilder digunakan untuk mengimplementasikan metode untuk membuat objek produk tertentu
Saat dijalankan, program klien memanggil konstruktor publik dari kelas tertentu untuk membuat beberapa bagiannya. Metode pemanggilan instance konstruktor tertentu adalah sebagai berikut:
prosedur TForm1.Create3ComponentFormUsingBuilder(ABuilder: TAbstractFormBuilder);
var
Bentuk Baru: TForm;
mulai
dengan ABuilder dimulai
CreateForm(aplikasi);
Buat Edit;
BuatTombol Kecepatan;
BuatLabel;
Bentuk Baru := Formulir;
jika NewForm <> nil maka NewForm.Show;
akhir;
akhir;