Описание режима декоратора
Примечание. Используйте один класс, чтобы динамически изменять функциональные объекты другого класса до или после, и добавьте в него несколько дополнительных функций; Это украшение функций объекта класса. Декоративный класс и украшенный класс требуют того же метода интерфейса доступа (функция). В динамических объектно-ориентированных классах реализация, как правило, ограничена реализацией того же интерфейса; Декоративный класс должен иметь ссылку на украшенный класс, который используется для вызова соответствующих методов декоративного класса в декоративном классе, а затем изменить его;
Примеры сценариев:
1>. Например, когда мы носим одежду в нашей жизни, рубашку, пиджак, пару брюк, галстук и пару красивых кожаных туфлей; Каждый дополнительный является украшением для фронта или всего тела;
2>. Например, у нас есть метод функции под классом, который может использоваться для записи журналов, который может использоваться для пользователей для входа в такую функцию. Возможно, нам нужно получить текущую информацию оператора перед написанием журнала или написать журнал после успешного входа в систему; Дополнительные операции перед написанием журнала, как правило, являются целью написания журналов; Написание журнала после успешного журнала также является, как правило, информацией о операции процесса журнала;
Следовательно, режим декоратора используется для реализации, и они работают аналогичным образом; Это расширение декоратора функционального объекта декоратора, который по сути представляет собой тот же функциональный диапазон исходного метода;
Исходный код экземпляра
1. Украшенная категория
Кода -копия выглядит следующим образом:
функция Wore () {
}
Wear.prototype.shirt = function () {
// носить рубашку
console.log («носить рубашку»);
}
2. Декораторы
Кода -копия выглядит следующим образом:
Функциональный декоратор (износ) {
this.wear = wear;
}
Decorator.prototype.shirt = function () {
this.wear.shirt ();
// После того, как я носил рубашку, я снова наложил галстук
}
3. Как использовать
Кода -копия выглядит следующим образом:
var wear = new Wear ();
Var Decorator = новый декоратор (Wear);
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 («носить галстук»);
}
функция Decerator_Western (декоратор) {
this.decorator = декоратор;
}
Decerator_Western.Prototype.shirt = function () {
this.decorator.shirt ();
console.log («носите костюм снова»);
}
Как использовать:
Кода -копия выглядит следующим образом:
// Сначала надеть рубашку
var wear = new Wear ();
Var Decorator = новый декоратор (Wear);
//decorator.shirt ();
// снова носить галстук
var tie = new Decorator_tie (декоратор);
//tie.shirt ();
// снова поставить костюм
var Western = new Decorator_Western (Tie);
Western.shirt ();
Это фиктивный пример заправки и украшения;