คำอธิบายโหมดมัณฑนากร
หมายเหตุ: ใช้คลาสหนึ่งเพื่อแก้ไขวัตถุที่ใช้งานได้ของคลาสอื่นก่อนหรือหลังและเพิ่มฟังก์ชั่นพิเศษบางอย่างลงไป นี่คือการตกแต่งฟังก์ชั่นของวัตถุคลาส คลาสการตกแต่งและคลาสที่ตกแต่งต้องใช้วิธีการเชื่อมต่อแบบเดียวกัน (ฟังก์ชั่น) ในคลาสที่มุ่งเน้นวัตถุแบบไดนามิกการใช้งานมักถูก จำกัด โดยการใช้งานอินเทอร์เฟซเดียวกัน ชั้นเรียนตกแต่งจะต้องมีการอ้างอิงถึงชั้นเรียนที่ตกแต่งซึ่งใช้เรียกวิธีการตกแต่งที่สอดคล้องกันในชั้นเรียนตกแต่งแล้วปรับเปลี่ยน;
ตัวอย่างของสถานการณ์:
1>. ตัวอย่างเช่นเมื่อเราสวมใส่เสื้อผ้าในชีวิตของเราเสื้อเชิ้ตแจ็คเก็ตสูทกางเกงขายาวคู่หนึ่งเน็คไทและรองเท้าหนังที่สวยงามคู่หนึ่ง แต่ละพิเศษคือการตกแต่งด้านหน้าหรือทั้งร่างกาย
2>. ตัวอย่างเช่นเรามีวิธีการฟังก์ชั่นภายใต้คลาสที่อาจใช้ในการเขียนบันทึกซึ่งอาจใช้สำหรับผู้ใช้ในการเข้าสู่ระบบฟังก์ชันดังกล่าว บางทีเราจำเป็นต้องได้รับข้อมูลผู้ประกอบการปัจจุบันก่อนเขียนบันทึกหรือเขียนบันทึกหลังจากเข้าสู่ระบบสำเร็จ การดำเนินการเพิ่มเติมก่อนที่จะเขียนบันทึกโดยทั่วไปมีวัตถุประสงค์ในการเขียนบันทึก การเขียนบันทึกหลังจากการเข้าสู่ระบบสำเร็จโดยทั่วไปแล้วข้อมูลการดำเนินการของกระบวนการบันทึก
ดังนั้นโหมดมัณฑนากรใช้ในการใช้งานและทั้งสองทำงานในทำนองเดียวกัน เป็นการขยายตัวของวัตถุที่ใช้งานได้ของมัณฑนากรของมัณฑนากรซึ่งเป็นช่วงการทำงานของวิธีการเดิม ๆ
ซอร์สโค้ดอินสแตนซ์
1. หมวดหมู่ตกแต่ง
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นสึกหรอ () {
-
Wear.prototype.shirt = function () {
// สวมเสื้อ
console.log ('สวมเสื้อ');
-
2. นักตกแต่ง
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นมัณฑนากร (สวมใส่) {
this.wear = Wear;
-
Decorator.prototype.shirt = function () {
this.wear.shirt ();
// หลังจากสวมเสื้อฉันก็ผูกเน็คไทอีกครั้ง
-
3. วิธีใช้
การคัดลอกรหัสมีดังนี้:
var wear = new Wear ();
Var Decorator = Dorjeconator ใหม่ (สวมใส่);
Decorator.shirt ();
สิ่งนี้จะช่วยให้การตกแต่งแบบขยายแบบไดนามิกของวัตถุฟังก์ชั่นการสึกหรอ คุณไม่จำเป็นต้องรู้ว่าวิธีการตกแต่งแบบดั้งเดิมดำเนินการอย่างไร เพิ่งรู้ว่าฟังก์ชั่นของมันคืออะไรแล้วรู้ว่าฟังก์ชั่นเพิ่มเติมที่เราต้องการเพิ่มในนั้นคืออะไร
คำแนะนำอื่น ๆ
รูปแบบของมัณฑนากรที่ถอนวิธีการเชิงวัตถุอย่างแท้จริง: หลักการของการเปิดไปยังส่วนขยายและปิดลงในการปรับเปลี่ยน; วิธีการใช้งานที่ต้องการทั้งหมดจะดำเนินการโดยไม่ต้องปรับเปลี่ยน [การสวมใส่คลาสตกแต่ง] และขยาย [มัณฑนากรคลาสมัณฑนากร];
คุณสมบัติหลักของโมเดลมัณฑนากรคือการอ้างอิงของมัณฑนากรกับมัณฑนากรเพื่อให้ได้การตกแต่งที่ไม่ได้แก้ไขของมัณฑนากร
การจำลอง: ฉากการสวมเสื้อก่อนจากนั้นผูกและจากนั้นชุดสูท: มัณฑนากรด้านบนยังคงไม่เปลี่ยนแปลง:
2. นักตกแต่ง:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นมัณฑนากร (สวมใส่) {
this.wear = Wear;
-
Decorator.prototype.shirt = function () {
this.wear.shirt (); // สวมเสื้อที่นี่เท่านั้น
-
3. สร้างคลาสการสวมใส่และสวมชุดสูทคล้ายกับการสืบทอดคลาสย่อยของมัณฑนากร
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น decorator_tie (มัณฑนากร) {
this.decorator = มัณฑนากร;
-
Decorator_tie.prototype.shirt = function () {
this.decorator.shirt (); // สวมเสื้อ
console.log ('Wear a tie อีกครั้ง');
-
ฟังก์ชั่น decorator_western (มัณฑนากร) {
this.decorator = มัณฑนากร;
-
Decorator_western.prototype.shirt = function () {
this.decorator.shirt ();
console.log ('สวมชุดสูทอีกครั้ง');
-
วิธีใช้:
การคัดลอกรหัสมีดังนี้:
// ใส่เสื้อของคุณก่อน
var wear = new Wear ();
Var Decorator = Dorjeconator ใหม่ (สวมใส่);
//decorator.shirt ();
// สวมเสมอกันอีกครั้ง
var tie = ใหม่ decorator_tie (มัณฑนากร);
//tie.shirt ();
// ใส่ชุดสูทอีกครั้ง
var Western = New Decorator_western (tie);
Western.shirt ();
นี่เป็นตัวอย่างจำลองของการแต่งตัวและการตกแต่ง