แนะนำ
ในระบบซอฟต์แวร์บางครั้งเราต้องเผชิญกับการสร้าง "วัตถุที่ซับซ้อน" ซึ่งมักจะประกอบด้วยวัตถุย่อยของแต่ละส่วนโดยใช้อัลกอริทึมบางอย่าง เนื่องจากการเปลี่ยนแปลงข้อกำหนดส่วนต่าง ๆ ของวัตถุที่ซับซ้อนนี้มักจะเผชิญกับการเปลี่ยนแปลงที่รุนแรง แต่อัลกอริทึมที่รวมเข้าด้วยกันนั้นค่อนข้างเสถียร จะจัดการกับการเปลี่ยนแปลงนี้ได้อย่างไร? วิธีการให้ "กลไกการห่อหุ้ม" เพื่อแยกการเปลี่ยนแปลงใน "แต่ละส่วนของวัตถุที่ซับซ้อน" เพื่อป้องกัน "อัลกอริทึมการก่อสร้างที่มั่นคง" ในระบบจากการเปลี่ยนแปลงตามความต้องการ? นี่คือสิ่งที่จะกล่าวถึงโมเดลของผู้สร้าง
รูปแบบผู้สร้างสามารถแยกการสร้างวัตถุที่ซับซ้อนออกจากการเป็นตัวแทนเพื่อให้กระบวนการก่อสร้างเดียวกันสามารถสร้างการเป็นตัวแทนที่แตกต่างกัน กล่าวคือถ้าเราใช้โหมด Builder ผู้ใช้จะต้องระบุประเภทที่จะสร้างเพื่อรับและกระบวนการก่อสร้างและรายละเอียดที่เฉพาะเจาะจงไม่จำเป็นต้องทราบ
ข้อความ
รูปแบบนี้ค่อนข้างง่าย โปรดป้อนรหัสก่อนจากนั้นอธิบาย
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น getBeerById (id, callback) {
// ใช้ ID เพื่อขอข้อมูลจากนั้นส่งคืนข้อมูล
asyncRequest ('get', 'beer.uri? id =' + id, ฟังก์ชั่น (resp) {
// การตอบกลับการโทรกลับ
การโทรกลับ (resp.responsetext);
-
-
var el = document.querySelector ('#test');
El.addeventListener ('คลิก', GetBeerByidBridge, False);
ฟังก์ชั่น getBeerByidBridge (e) {
getBeerById (this.id, function (เบียร์) {
console.log ('เบียร์ที่ร้องขอ:' + เบียร์);
-
-
ตามคำจำกัดความของผู้สร้างเฟสตารางคือการโทรกลับนั่นคือวิธีการแสดงและประมวลผลข้อมูลหลังจากได้รับมันขึ้นอยู่กับฟังก์ชั่นการโทรกลับ ตามลําดับฟังก์ชั่นการโทรกลับไม่จำเป็นต้องให้ความสนใจกับวิธีการรับข้อมูลเมื่อประมวลผลข้อมูล ตัวอย่างเดียวกันสามารถเห็นได้ในวิธีการ AJAX ของ jQuery มีฟังก์ชั่นการโทรกลับมากมาย (เช่นความสำเร็จการโทรกลับข้อผิดพลาด ฯลฯ ) และวัตถุประสงค์หลักคือการแยกความรับผิดชอบ
ขอให้มีอีกตัวอย่างของ jQuery:
การคัดลอกรหัสมีดังนี้:
$ ('<div class = "foo"> bar </div>');
เราจำเป็นต้องส่งผ่านในอักขระ HTML ที่จะสร้างขึ้นโดยไม่คำนึงถึงวิธีการผลิตวัตถุ HTML ที่เฉพาะเจาะจง
สรุป
โมเดลผู้สร้างส่วนใหญ่ใช้เพื่อ "สร้างวัตถุที่ซับซ้อนในขั้นตอน" ซึ่ง "ขั้นตอน" เป็นอัลกอริทึมที่เสถียรในขณะที่ส่วนต่าง ๆ ของวัตถุที่ซับซ้อนมักจะเปลี่ยน ข้อได้เปรียบคือ "กระบวนการประมวลผล" ของโมเดลตัวสร้างถูกเปิดเผยซึ่งทำให้โมเดลตัวสร้างมีความยืดหยุ่นมากขึ้นและโมเดลตัวสร้างจะแยกกระบวนการประกอบและสร้างส่วนประกอบเฉพาะเพื่อให้เราไม่ต้องสนใจว่าแต่ละองค์ประกอบจะประกอบอย่างไร