โหมดตัวสร้างใน Delphi จะขยายโหมดตัวสร้างพื้นฐาน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโหมด Builder โปรดดูที่ [Gam+]
แยกการก่อสร้างวัตถุที่ซับซ้อนออกจากการนำเสนอ เพื่อให้กระบวนการก่อสร้างเดียวกันสามารถสร้างการนำเสนอที่แตกต่างกันได้
ผู้สร้างมีแนวคิดคล้ายกับโรงงานเชิงนามธรรม แต่ความแตกต่างก็คือเครื่องกำเนิดไฟฟ้าสร้างส่วนประกอบต่างๆ ของคลาสที่ซับซ้อนเดียวโดยการอ้างอิงถึงคอนสตรัคเตอร์ที่แตกต่างกัน ในขณะที่โรงงานนามธรรมช่วยให้คุณสร้างคลาสที่เป็นรูปธรรมทั้งหมดได้ ตัวอย่างเช่น ผู้สร้างสามารถสร้างบ้าน วิลล่า และสำนักงานได้ คุณสามารถจ้างช่างก่อสร้างต่าง ๆ เพื่อสร้างบ้านอิฐและบ้านไม้ได้ แม้ว่าคุณจะสามารถระบุรูปทรงและขนาดของบ้านได้ก็ตาม และซี่โครงอื่นๆก็ใช้สร้างส่วนหนึ่งของบ้านแต่ไม่ใช่ทั้งหมด เช่น สร้างหน้าต่าง ประตู และลานจอดรถ
ตัวอย่างต่อไปนี้จะแนะนำคลาสนามธรรม TabstractFormBuilder และคลาสย่อยที่เป็นรูปธรรมสองคลาส TredFormBuilder และ TblueFormBuilder TabstractFormBuilder ประกาศตัวสร้างคลาสบางตัว
พิมพ์
TAbstractFormBuilder = คลาส
ส่วนตัว
แบบฟอร์ม: TForm;
ขั้นตอน BuilderFormClose (ผู้ส่ง: TObject; var Action: TCloseAction);
ได้รับการคุ้มครอง
ฟังก์ชั่น GetForm: TForm เสมือน;
สาธารณะ
ขั้นตอน CreateForm (AOwner: TComponent เสมือน);
ขั้นตอน CreateSpeedButton; เสมือน;
ขั้นตอน CreateEdit เสมือน;
ขั้นตอน CreateLabel เสมือน;
แบบฟอร์มคุณสมบัติ: TForm อ่าน GetForm;
จบ;
พิมพ์
TRedFormBuilder = คลาส (TAbstractFormBuilder)
ส่วนตัว
FNextLeft, FNextTop: จำนวนเต็ม;
สาธารณะ
ขั้นตอน CreateForm (AOwner: TComponent);
ขั้นตอน CreateSpeedButton แทนที่;
ขั้นตอน CreateEdit;
ขั้นตอน CreateEdit;
จบ;
พิมพ์
TBlueFormBuilder = คลาส (TAbstractFormBuilder)
ส่วนตัว
FNextLeft, FNextTop: จำนวนเต็ม;
สาธารณะ
ขั้นตอน CreateForm (AOwner: TComponent);
ขั้นตอน CreateSpeedButton แทนที่;
ขั้นตอน CreateEdit;
ขั้นตอน CreateLabel แทนที่;
จบ;
ท่ามกลางอินเทอร์เฟซข้างต้น:
? ประกาศอินเทอร์เฟซสำหรับการสร้างวัตถุผลิตภัณฑ์นามธรรม: TAbstractFormBuilder
¨ คลาส TAbstractFormBuilder มีวิธีการจากโรงงานที่เป็นนามธรรมสามวิธี CreateForm, CreateSpeedButton, CreateEdit, CreateEdit
? TBlueFormBuilder และ TRedFormBuilder ใช้เพื่อใช้วิธีการสร้างวัตถุผลิตภัณฑ์เฉพาะ
เมื่อรันโปรแกรมไคลเอนต์จะเรียกตัวสร้างสาธารณะของคลาสเฉพาะเพื่อสร้างบางส่วนของมัน วิธีการเรียกของอินสแตนซ์ตัวสร้างเฉพาะมีดังนี้:
ขั้นตอน TForm1.Create3ComponentFormUsingBuilder (ABuilder: TAbstractFormBuilder);
var
แบบฟอร์มใหม่: TForm;
เริ่ม
ด้วย ABuilder จะเริ่มต้น
CreateForm (แอปพลิเคชัน);
สร้างแก้ไข;
สร้างปุ่มความเร็ว;
สร้างฉลาก;
แบบฟอร์มใหม่ := แบบฟอร์ม;
ถ้า NewForm <> ไม่มีแล้ว NewForm.Show;
จบ;
จบ;