Aussehensmodus Beschreibung
HINWEIS: Das Aussehensmodus ist eine Schnittstelle mit hoher Ebene, die durch ein komplexes Subsystem oder eine Programmzusammensetzung bereitgestellt wird, sodass der Zugriff auf das zugrunde liegende Programm oder die Systemschnittstelle mit dem Client zugänglich ist.
Der Aussehensmodus ist ein Muster, dem wir häufig begegnen. Die häufig beinhaltenden Funktionen können mehrere Subinterfaces oder Subsysteme beinhalten, während eine bestimmte Funktion unserer möglicherweise nur in der Reihenfolge einer oder mehrerer von mehreren Subinterfaces eingekapselt werden muss. Wenn die Geschäftsfunktion direkt dem Subinterface oder Subsystem entspricht, muss der Entwickler möglicherweise ein erhebliches Verständnis des internen Inhalts haben. Möglicherweise müssen Sie verstehen, wie der Geschäftsprozess, welche Reihenfolge usw. ist. Dies erfordert Entwickler, das Geschäft zu verstehen, und macht auch die Kundenprogrammierung ziemlich kompliziert.
Wenn hier eine Ebene oder eine Klasse vorhanden ist, die speziell die Methode bereitstellt, mit der wir sie zusammenfassen möchten, muss die Client -Funktion nur mit dieser Zwischenschichtklasse interagieren, und die entsprechenden Methoden der Zwischenschichtklasse haben verwandte Entwickler, die die Kapselung der Unternehmensorganisation verstehen, und das Programm wird dann sehr einfach. Der Programmierer muss nur wissen, welche Methode für seine Funktion erforderlich ist, und muss die interne Logik nicht kennen.
Diese Klasse mit mittlerer Ebene nennen wir die Erscheinungsklasse, was die Idee des Erscheinungsmusters ist.
Szenenbeispiel:
1>. Zum Beispiel kann der Master -Schalter, dieser Master -Schalter, ein Licht an der Tür des Hauses, ein paar Lichter in der Halle steuern und die Stromversorgung des Home -TV, des Kühlschranks usw. steuern. Sie müssen nicht wissen, wie die Taste auf dem Master -Schalter herauskommt oder wie er auf die relevanten Elektrogeräte gedrückt wird. Wie auch immer, Sie werden es direkt anrufen.
Diese Lichter, Fernseher usw. sind die Schnittstellen und kleine Systeme, die wir verwenden möchten. Dieser Master -Schalter ist unser Erscheinungsbild und wir können ihn direkt bedienen.
2>. Es ist gut, dass ein Unternehmen mehrere funktionale Abteilungen hat. Wenn der Chef die Umsetzung verschiedener Aspekte der Arbeit einzeln benötigt, wird er in die Abteilung gehen und einen Mitarbeiter fragen, wie es diesem Ding geht. Wenn er die richtige Person fragt, kann er den Chef direkt beantworten. Wenn diese Person verantwortlich ist, wird er dem Chef auch sagen: "Oh, wer für diese Angelegenheit verantwortlich ist, und der Chef muss rennen, um die Person zu fragen, es ist so problematisch."
Wenn jede funktionale Abteilung einen Vorgesetzten hat, kann der Chef einfach dazu gehen und die Situation herausfinden. Der Chef muss sich nicht darum kümmern, wie die verantwortliche Person das weiß. Er möchte nur die Situation von 1, 2 und 3 Dingen kennen und dem Fortschritt folgen.
Instanzquellcode
Implementieren Sie nun den Quellcode gemäß dem zweiten Instanzszenario:
1. Mehrere Abteilungsfunktionen:
Abteilung 1 (Geschäftsabteilung):
Die Codekopie lautet wie folgt:
Funktion BusinessDept () {
this.manager = 'Manager Chen'; // Verantwortliche Personen
}
BusinessDept.Prototype = {
Monateales: function () {
console.log (this.Manager + 'Say: Die Verkäufe dieses Monats sind xxx');
},
NextPlan: function () {
console.log (this.Manager + 'sagen: Der nächste Plan ist so, xxxx');
}
}
Abteilung 2 (F & E -Abteilung):
Die Codekopie lautet wie folgt:
Funktion rddept () {
this.manager = 'Manager Huang';
}
Rddept.prototype = {
Fortschritt: function () {
console.log (this.Manager + 'sagen: Die aktuelle Projektsituation und Fortschritt sind wie diese xxx');
},
DeptPlan: function () {
console.log (this.Manager + 'Say: Der nächste Abteilungsplan ist wie dieser xxx');
}
}
Die oben genannten sind die Fragen, die die Vorgesetzten jeder Abteilung dem Chef beantworten müssen.
Legen Sie als Nächstes die Kategorie Erscheinung ein, um die Fragen zu organisieren, die Ihr Chef stellen möchte.
Die Codekopie lautet wie folgt:
Funktion fassade () {
this.business = new BusinessDept ();
this.rddept = new rddept ();
}
Facade.prototype = {
Abteilung: function () {
this.business.monthSales (); // Der Verkaufsleiter wird zuerst sagen;
this.rddept.Progress ();
},
DeptPlan: function () {
this.business.NextPlan (); // den nächsten Plan melden;
this.rddept.deptPlan ();
}
}
Als nächstes rief der Chef die beiden Manager vor ihm an und begann, Fragen zu stellen:
Die Codekopie lautet wie folgt:
var facade = neue fassade ();
console.log ('Chef fragte: Stellen Sie nun die Situation Ihrer Abteilung vor?');
fassade.deptivierung ();
console.log ('Chef fragte: Was sind die Pläne als nächstes?');
fassade.deptPlan ();
Andere Anweisungen
Die Verwendung des Aussehensmodus kann Schnittstellen oder Klassen entkoppelt lassen, sodass keine Abhängigkeit zwischen den Klassen erforderlich ist. Wenn es unnötig ist zu verwenden, muss A enthalten B oder B muss ein Einbeziehung von A enthalten. Dies verstößt gegen das Prinzip der Schließungsänderung. Durch die Verwendung von Verpackungen der Zwischenschicht -Erscheinungsklasse können Schnittstellenaufrufe einfach werden, und die Verwendung von Subinterfaces oder Subsystem -Objektaufrufen werden freier und organisierter.
Der Aussehensmodus erscheint häufig in unserer Programmierung, und der Aussehensmodus wird häufig in der Musterdefinition des Architektursystems verwendet. Unser System muss Schnittstellendienste von Drittanbietern verwenden und häufig eine Erscheinungsschicht hinzufügen, um verfügbare Geschäftsschnittstellen zu organisieren.