Описание режима появления
ПРИМЕЧАНИЕ. Режим появления-это интерфейс интерфейса высокого уровня, предоставляемый сложной подсистемой или составом программы, что облегчает доступ к базовой программе или системному интерфейсу с помощью клиента;
Режим внешнего вида - это шаблон, с которым мы часто сталкиваемся. Функции, которые мы часто включаем, могут включать в себя несколько подсинтерфейков или подсистем, в то время как определенная наша функция может потребовать, чтобы это было только инкапсулировать в порядке одного или нескольких из нескольких поднтерфейсов. Если бизнес -функция непосредственно соответствует подсингистеме или подсистеме, разработчику может потребоваться значительное понимание внутреннего содержания; Вам может потребоваться понять, как идет бизнес -процесс, каков его заказ и т. Д. Это требует, чтобы разработчики понимали бизнес, а также усложняют клиентские программы;
Если здесь есть слой или класс, который специально предоставляет метод, который мы хотим использовать для его инкапсуляции, клиентская функция должна взаимодействовать только с этим классом промежуточного уровня, и соответствующие методы промежуточного класса уровня имеют связанных разработчиков, которые понимают инкапсуляцию бизнес -организации, тогда в программе станут очень просты. Программист должен только знать, какой метод требуется для его функции, и ему не нужно знать внутреннюю логику.
Этот класс среднего слоя - это то, что мы называем классом внешнего вида, который является идеей шаблона внешнего вида.
Пример сцены:
1>. Например, мастер -переключатель, этот мастер -переключатель может управлять светом на двери дома, несколькими огнями в зале, и управлять источником питания домашнего телевизора, холодильника и т. Д. Если вы нажимаете », в котором будет электричество, и даже непосредственно испускает свет и тепло. Вам не нужно знать, как выходит кнопка на главном выключателе, или как она нажимает на соответствующие электрические приборы. В любом случае, вы назовите это напрямую.
Эти огни, телевизоры и т. Д. - это интерфейсы и небольшие системы, которые мы хотим использовать; Этот мастер -переключатель - наш внешний вид, и мы можем управлять им напрямую.
2>. Хорошо, что у компании есть несколько функциональных отделов. Когда босс нуждается в реализации различных аспектов работы один за другим, он пойдет в департамент и спросит сотрудника, как эта вещь делает. Если он спрашивает правильного человека, он может напрямую ответить на босса. Если этот человек несет ответственность, он также скажет боссу: «О, кто несет ответственность за этот вопрос, и босс должен бежать, чтобы спросить человека, это так хлопотно».
Если у каждого функционального отделения есть руководитель, босс может просто пойти к нему и узнать ситуацию. Босс не должен заботиться о том, как ответственный человек знает это. Он просто хочет знать ситуацию 1, 2 и 3 вещей и следовать прогрессу.
Исходный код экземпляра
Теперь реализуйте исходный код в соответствии со сценарием второго экземпляра:
1. Несколько департаментов:
Отдел 1 (Департамент бизнеса):
Кода -копия выглядит следующим образом:
Функция BusinessDept () {
this.manager = 'Manager Chen'; // ответственные люди
}
BusinessDept.prototype = {
Месяцы: function () {
console.log (this.manager + 'say: продажи этого месяца - xxx');
},
NextPlan: function () {
console.log (this.manager + 'say: следующий план такой, xxxx');
}
}
Отдел 2 (Отдел исследований и разработок):
Кода -копия выглядит следующим образом:
функция rddept () {
this.manager = 'Manager Huang';
}
Rddept.prototype = {
Прогресс: function () {
console.log (this.manager + 'say: текущая ситуация с проектом и прогресс похожи на этот xxx');
},
deptplan: function () {
console.log (this.manager + 'say: следующий план отделения похож на этот XXX');
}
}
Вышеуказанные вопросы, которые руководители каждого отдела должны ответить на босса;
Затем установите категорию внешнего вида, чтобы организовать вопросы, которые хочет задать ваш босс;
Кода -копия выглядит следующим образом:
функция facade () {
this.business = new BusinessDept ();
this.rddept = new rddept ();
}
Facade.prototype = {
DeptSituation: function () {
this.business.monthsales (); // Менеджер по продажам скажет первым;
this.rddept.progress ();
},
deptplan: function () {
this.business.nextplan (); // Сообщить о следующем плане;
this.rddept.deptplan ();
}
}
Затем босс позвонил двум менеджерам перед ним и начал задавать вопросы:
Кода -копия выглядит следующим образом:
var facade = new Facade ();
console.log («Босс спросил: теперь представьте ситуацию вашего отдела?»);
FACADE.DeptIation ();
console.log («Босс спросил: каковы планы дальше?»);
facade.deptplan ();
Другие инструкции
Использование режима внешнего вида может сделать разъединение интерфейсов или классов, так что нет необходимости зависимости между классами. Когда это не нужно использовать, A, необходимая для включения B или B должна включать A. Это нарушает принцип закрытия модификации. Использование промежуточного внешнего вида слоя обертки могут сделать интерфейсные вызовы простыми, а использование подсинтерфейных или подсистемных объектов становятся более свободными и организованными.
Режим внешнего вида часто появляется в нашем программировании, а режим внешнего вида часто используется в определении шаблона системы архитектуры. Наша система должна использовать сторонние интерфейсные услуги и часто добавлять уровень внешнего вида для организации доступных бизнес-интерфейсов;