คำอธิบายโหมดผู้สร้าง
1. แยกการก่อสร้างวัตถุที่ซับซ้อนออกจากการเป็นตัวแทนเพื่อให้กระบวนการสร้างเดียวกันสามารถมีการเป็นตัวแทนที่แตกต่างกัน สิ่งนี้เรียกว่ารูปแบบผู้สร้าง
2. คำอธิบายในภาษาที่มุ่งเน้นวัตถุบทบาทหลัก:
1>. คลาสอินเตอร์เฟสของตัวสร้างกำหนดตัวสร้าง [ผู้ปฏิบัติงาน] ซึ่งเป็นวิธีการทำงานแบบครบวงจรและการปฏิบัติงานซึ่งแสดงถึงวัตถุโครงสร้างที่ซับซ้อน
2>. ConcreteBuilder ใช้เพื่อสร้างวัตถุอินสแตนซ์ของผู้สร้างรูปแบบต่าง ๆ เพื่อแสดงถึงการเป็นตัวแทนของผู้สร้างที่แตกต่างกัน
3>. ผู้อำนวยการผู้บัญชาการคนนี้ใช้เพื่อเป็นแนวทางในกระบวนการดำเนินการและรูปแบบของอินสแตนซ์ของตัวสร้างซึ่งใช้เพื่อแยกจากประสิทธิภาพอินสแตนซ์ของตัวสร้างและใช้เพื่อเป็นแนวทางในอินสแตนซ์ของตัวสร้างเพื่อสร้างและสร้างผลลัพธ์ผลิตภัณฑ์ในลำดับกฎบางอย่าง
4>. ผลลัพธ์ที่สร้างขึ้นโดย ResultObject จะสร้างวัตถุผลลัพธ์ นี่คือผลลัพธ์ที่สร้างขึ้นโดยผู้สร้างเฉพาะตามคำแนะนำของผู้อำนวยการ
3. โมเดลผู้สร้างเป็นผู้บัญชาการผู้สร้างและลูกค้าที่ใช้ผู้บัญชาการเพื่อเรียกผู้สร้างเฉพาะเพื่อทำงานและสามารถดึงผลลัพธ์จากผู้สร้างเฉพาะ
4. โหมดผู้สร้างสถานการณ์จำลอง: [ดูตัวอย่างที่ดีที่แสดงคำอธิบายของโหมด Builder]
ว่ากันว่าสมาชิกในครอบครัวต้องการสร้างบ้าน แต่เจ้าของบ้านหรือคนอื่น ๆ ในครอบครัวไม่ทราบวิธีการสร้างบ้านดังนั้นเขาจึงต้องจ้างคนงานสองสามคน ทีมงานสร้างบ้านต้องมีหัวหน้าคนงานสร้างบ้านตามแนวคิดของเจ้าของ หัวหน้าคนงานออกแบบและต้องการให้คนงานทำสิ่งที่พวกเขาทำตามข้อกำหนดของเจ้าของ
หัวหน้าคนงานกล่าวว่าขั้นตอนแรกคือการสร้างโครงกระดูกทั้งหมดของบ้านขั้นตอนที่สองคือการสร้างห้องนอนขั้นตอนที่สามคือการตกแต่งห้องครัวขั้นตอนที่สี่คือการสร้างห้องนั่งเล่นและขั้นตอนที่ห้าคือ ...
หัวหน้าคนงานไม่ได้ทำอะไรเลย แต่ผู้สร้างเฉพาะจะต้องทำตามข้อกำหนดของหัวหน้าคนงาน ขั้นตอนแรกและขั้นที่สองถูกสร้างขึ้นจนกว่าบ้านทั้งหมดจะเสร็จสมบูรณ์
ผู้สร้างจะต้องมีทักษะทั้งหมดในการสร้างบ้านหลังนี้คือสร้างโครงกระดูกตกแต่งห้องนอน ฯลฯ นั่นคือสิ่งที่ผู้สร้างทำหรือมีความสามารถจะต้องมากกว่าหรือเท่ากับสิ่งที่ผู้บัญชาการต้องทำหรือมีความสามารถ
นั่นคือผู้บัญชาการเป็นผู้จัดงานและผู้สร้างมีทักษะ
5. ในภาษาที่อ่อนแอเช่น JavaScript หากไม่มีสิ่งใดเป็นอินเทอร์เฟซให้ละเว้นเลเยอร์คำจำกัดความอินเตอร์เฟสสร้างตัวสร้างเฉพาะโดยตรงจากนั้นสร้างคลาสคำแนะนำเพื่อโทรกลับไปมา
ซอร์สโค้ดอินสแตนซ์
1. ผู้สร้างแรงงาน X:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น WorkerBuilder () {
this.workone = function () {
// สร้างโครงกระดูก
-
this.worktwo = function () {
// สร้างห้องนอน
-
this.workthree = function () {
// สร้างห้องครัว
-
this.workfour = function () {
// สร้างห้องนั่งเล่น
-
-
this.getResult = function () {
// สร้างบ้าน
var house = บ้านใหม่ ();
//house.houseframe ...
บ้านกลับ;
-
-
Workbuilder เป็นผู้สร้างที่เฉพาะเจาะจง workone สองคือสิ่งที่ต้องทำสร้างโครงกระดูก ฯลฯ ;
แน่นอนว่าผู้สร้างงานสามารถสร้างได้อีกหลายครั้งเพื่อระบุว่าคนงานดำเนินการวิธีการที่แตกต่างกันสำหรับแต่ละงาน แต่เนื้อหาการทำงานเหมือนกัน
2. หมวดหมู่ผู้บัญชาการ
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นผู้กำกับ () {
this.construct = function (builder) {
builder.workone ();
builder.worktwo ();
builder.workthree ();
builder.workfour ();
-
// เนื้อหาข้างต้นสามารถตั้งค่าตามลำดับและสามารถตั้งค่ารายการงานได้
-
-
วิธีการชี้นำภายใต้หมวดหมู่ผู้บัญชาการรวมถึงการอ้างอิงการโทรกลับไปยังผู้สร้างรวมถึงเนื้อหาการทำงานของผู้สร้างหลายคนหรือทั้งหมด ผู้บัญชาการจัดระเบียบและจัดเรียงสิ่งที่คนงานผู้สร้างต้องทำ
3. บ้านผลิตภัณฑ์
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น House () {
this.houseframe = '';
this.room = '';
this.kitchen = '';
this.livingroom = '';
-
-
4. วิธีใช้
การคัดลอกรหัสมีดังนี้:
var builder = new Workbuilder ();
ผู้อำนวยการ VAR = ผู้อำนวยการคนใหม่ ();
ผู้อำนวยการสร้าง (Builder);
var house = builder.getResult ();
ขั้นตอนที่สี่คือการใช้งานทั้งหมดเทียบเท่ากับลูกค้า: เจ้าของบ้าน เจ้าของขอให้ผู้อำนวยการหัวหน้าคนงานสร้างบ้าน แต่หัวหน้าคนงานไม่ได้ทำอะไรเลยดังนั้นเขาจึงสั่งให้คนงานสร้างสร้างเด็กและในที่สุดเจ้าของจะได้รับบ้านที่สร้างขึ้นจากคนงาน
คำแนะนำอื่น ๆ
โมเดลผู้สร้างนั้นเหมาะสมกว่าที่เนื้อหา [นามธรรม] ซับซ้อนและฉากจริงนั้นแตกต่างกันเช่นสถานการณ์ที่เนื้อหาหรือคำสั่งทำงานไม่สอดคล้องกัน ตัวอย่างเช่นกระบวนการชีวิตประจำวันของแต่ละคนและฉากที่คล้ายกับตัวอย่างข้างต้น ผ่านเลเยอร์ผู้สอนเป็นไปได้ที่จะลดสภาพแวดล้อมที่สถานที่ทำงานที่คล้ายกันจำนวนมาก แต่ลำดับของกฎการทำงานไม่สอดคล้องกัน มันสามารถลดสิ่งที่เป็นนามธรรมของวัตถุจริงได้อย่างมาก