คำอธิบายโหมดปรากฏ
หมายเหตุ: โหมดลักษณะที่ปรากฏเป็นอินเทอร์เฟซอินเทอร์เฟซระดับสูงที่จัดทำโดยระบบย่อยที่ซับซ้อนหรือองค์ประกอบของโปรแกรมทำให้ง่ายต่อการเข้าถึงโปรแกรมพื้นฐานหรืออินเทอร์เฟซระบบโดยใช้ไคลเอนต์
โหมดลักษณะที่ปรากฏเป็นรูปแบบที่เราพบบ่อย ฟังก์ชั่นที่เรามักจะเกี่ยวข้องอาจเกี่ยวข้องกับการแข่งขันย่อยหรือระบบย่อยหลายรายการในขณะที่ฟังก์ชั่นบางอย่างของเราอาจต้องการสิ่งนี้ที่จะถูกห่อหุ้มตามลำดับของหนึ่งหรือหลายส่วนของส่วนย่อยย่อย หากฟังก์ชั่นทางธุรกิจตรงกับระบบย่อยหรือระบบย่อยโดยตรงผู้พัฒนาอาจจำเป็นต้องมีความเข้าใจอย่างมากเกี่ยวกับเนื้อหาภายใน คุณอาจต้องเข้าใจว่ากระบวนการทางธุรกิจดำเนินไปอย่างไรคำสั่งของมันคืออะไร ฯลฯ สิ่งนี้ต้องการให้นักพัฒนาเข้าใจธุรกิจและทำให้การเขียนโปรแกรมลูกค้าค่อนข้างซับซ้อน
หากมีเลเยอร์หรือคลาสที่นี่ซึ่งให้วิธีการเฉพาะที่เราต้องการใช้ในการห่อหุ้มมันฟังก์ชั่นลูกค้าจะต้องโต้ตอบกับคลาสเลเยอร์กลางนี้และวิธีการที่สอดคล้องกันของคลาสชั้นกลางมีนักพัฒนาที่เกี่ยวข้องซึ่งเข้าใจการห่อหุ้มองค์กรธุรกิจแล้วโปรแกรมจะกลายเป็นเรื่องง่ายมาก โปรแกรมเมอร์จำเป็นต้องรู้ว่าวิธีการใดที่จำเป็นสำหรับฟังก์ชั่นของเขาและไม่จำเป็นต้องรู้ตรรกะภายใน
คลาสชั้นกลางนี้เป็นสิ่งที่เราเรียกว่าคลาสลักษณะที่ปรากฏซึ่งเป็นแนวคิดของรูปแบบรูปลักษณ์
ตัวอย่างฉาก:
1>. ตัวอย่างเช่นสวิตช์หลักสวิตช์หลักนี้สามารถควบคุมแสงที่ประตูบ้านไฟสองสามดวงในห้องโถงและควบคุมแหล่งจ่ายไฟของทีวีโฮมทีวีตู้เย็น ฯลฯ ถ้าคุณกด "เปิด" เปิดซึ่งจะมีกระแสไฟฟ้าและยังปล่อยแสงและการส่งผ่านความร้อนโดยตรง คุณไม่จำเป็นต้องรู้ว่าปุ่มบนสวิตช์หลักออกมาอย่างไรหรือกดอย่างไรกับเครื่องใช้ไฟฟ้าที่เกี่ยวข้อง อย่างไรก็ตามคุณจะเรียกมันโดยตรง
ไฟทีวี ฯลฯ เหล่านี้เป็นอินเทอร์เฟซและระบบขนาดเล็กที่เราต้องการใช้ สวิตช์หลักนี้เป็นรูปลักษณ์ของเราและเราสามารถใช้งานได้โดยตรง
2>. เป็นสิ่งที่ดีที่ บริษัท มีแผนกที่ใช้งานได้หลายแห่ง เมื่อเจ้านายต้องการการดำเนินการในแง่มุมต่าง ๆ ของการทำงานทีละคนเขาจะไปที่แผนกและถามพนักงานว่าสิ่งนี้กำลังทำอะไรอยู่ หากเขาถามคนที่เหมาะสมเขาสามารถตอบเจ้านายได้โดยตรง หากบุคคลนี้มีความรับผิดชอบเขาก็จะบอกเจ้านายด้วยว่า "โอ้ผู้รับผิดชอบเรื่องนี้และเจ้านายต้องวิ่งไปถามคน ๆ นั้นมันลำบากมาก"
หากแผนกที่ใช้งานได้แต่ละแผนกมีหัวหน้างานเจ้านายสามารถไปหาสถานการณ์ได้ เจ้านายไม่จำเป็นต้องสนใจว่าบุคคลที่รับผิดชอบจะรู้เรื่องนี้อย่างไร เขาแค่อยากรู้สถานการณ์ของ 1, 2 และ 3 สิ่งและติดตามความคืบหน้า
ซอร์สโค้ดอินสแตนซ์
ตอนนี้ใช้ซอร์สโค้ดตามสถานการณ์อินสแตนซ์ที่สอง:
1. ฟังก์ชั่นแผนกหลายอย่าง:
แผนก 1 (แผนกธุรกิจ):
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น BusinessDept () {
this.manager = 'ผู้จัดการเฉิน'; // คนที่รับผิดชอบ
-
BusinessDept.prototype = {
เดือน: ฟังก์ชั่น () {
console.log (this.manager + 'พูด: ยอดขายของเดือนนี้คือ xxx');
-
NextPlan: function () {
console.log (this.manager + 'Say: แผนต่อไปเป็นเช่นนี้ xxxx');
-
-
แผนก 2 (แผนก R&D):
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น rddept () {
this.manager = 'ผู้จัดการหวาง';
-
rddept.prototype = {
ความคืบหน้า: ฟังก์ชั่น () {
console.log (this.manager + 'พูด: สถานการณ์โครงการและความคืบหน้าในปัจจุบันเป็นเหมือน xxx นี้');
-
deptplan: function () {
console.log (this.manager + 'Say: แผนแผนกถัดไปเป็นเหมือน xxx นี้');
-
-
ข้างต้นเป็นคำถามที่หัวหน้างานของแต่ละแผนกต้องตอบเจ้านาย
ถัดไปกำหนดหมวดหมู่ลักษณะที่ปรากฏเพื่อจัดคำถามคำถามที่เจ้านายของคุณต้องการถาม
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นซุ้ม () {
this.business = new BusinessDept ();
this.rddept = new rddept ();
-
suade.prototype = {
Deptsituation: function () {
this.business.monthsales (); // ผู้จัดการฝ่ายขายจะพูดก่อน;
this.rddept.progress ();
-
deptplan: function () {
this.business.nextplan (); // รายงานแผนถัดไป;
this.rddept.deptplan ();
-
-
ถัดไปเจ้านายเรียกผู้จัดการสองคนต่อหน้าเขาและเริ่มถามคำถาม:
การคัดลอกรหัสมีดังนี้:
var facade = new Facade ();
console.log ('เจ้านายถาม: ตอนนี้แนะนำสถานการณ์ของแผนกของคุณ?');
SUCADE.DEPTSITUATION ();
console.log ('เจ้านายถาม: แผนอะไรต่อไป?');
Suade.deptplan ();
คำแนะนำอื่น ๆ
การใช้โหมดลักษณะที่ปรากฏสามารถทำให้อินเทอร์เฟซหรือคลาส decoupled เพื่อไม่จำเป็นต้องพึ่งพาระหว่างคลาส เมื่อไม่จำเป็นต้องใช้ต้องรวม B หรือ B ต้องรวม A. สิ่งนี้ละเมิดหลักการของการปรับเปลี่ยนการปิด การใช้ wrappers คลาสลักษณะเลเยอร์ระดับกลางสามารถทำให้การเรียกใช้อินเทอร์เฟซง่ายและการใช้การเรียกวัตถุย่อยหรือการเรียกวัตถุระบบย่อยจะกลายเป็นอิสระและจัดระเบียบมากขึ้น
โหมดลักษณะที่ปรากฏมักจะปรากฏในการเขียนโปรแกรมของเราและโหมดลักษณะที่ปรากฏมักจะใช้ในการกำหนดรูปแบบของระบบสถาปัตยกรรม ระบบของเราจำเป็นต้องใช้บริการอินเทอร์เฟซของบุคคลที่สามและมักจะเพิ่มเลเยอร์ลักษณะที่ปรากฏเพื่อจัดระเบียบอินเทอร์เฟซธุรกิจที่มีอยู่