Learning JavaScript Design Patterns / Шаблоны проектирования JavaScript: Классификация известных шаблонов

Оглавление
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Из моих ранних опытов изучения шаблонов проектирования, я нашел следующий таблицу очень полезной для напоминанием о том, что ряд шаблонов может предложить - она охватывает 23 Шаблона проектирования упомянутые в GoF. Оригинальная таблица была обобщена Элиз Нильсен еще в 2004 году и я изменил ее, это было необходимо, для соответствия нашей дискуссии в этом разделе книги.

On_and_On 16.05.14 в 08:50

0

Я рекомендую использовать эту таблицу в качестве справочника, но помните, что существует целый ряд дополнительных шаблонов, которые не упомянуты здесь, но будут обсуждаться позже в этой книге.

On_and_On 16.05.14 в 08:51

0

Краткая заметка о классах

On_and_On 16.05.14 в 08:51

0

Имейте в виду, что в этой таблице будут шаблоны, которые ссылаются на понятие «классы». JavaScript является менее приспособленным к классам, однако классы могут быть воспроизведены с помощью функций.

On_and_On 16.05.14 в 08:54

0

Наиболее распространенный подход к достижению этой цели является, определение функции JavaScript, где мы затем создать объект, используя новое ключевое слово. это может быть использовано, чтобы помочь определить новые свойства и методы для объекта следующим образом:

On_and_On 16.05.14 в 08:55

0

// "Класс" Автомобиль(Car)
function Car( model ) {

this.model = model;
this.color = "silver";
this.year = "2012";

this.getInfo = function () {
return this.model + " " + this.year;
};

}

Затем мы можем создать экземпляр объекта с помощью конструктора Car мы определили выше это как:

On_and_On 16.05.14 в 08:57

0

var myCar = new Car("ford");

myCar.year = "2010";

console.log( myCar.getInfo() );

Для других способов определения "класса", используя JavaScript, см. полезный пост Стяна Стефанова о них.

On_and_On 16.05.14 в 09:00

0

Перейдем теперь к таблице.

On_and_On 16.05.14 в 09:00

0

Создание -- Основываясь на концепции создания объекта. -- Класс -- Фабричный метод -- Это делает экземпляр нескольких производных классов на основе сопряженных данных или событий. -- Объект Абстрактный -- Создает экземпляр нескольких семейств классов без детализации конкретных классов. -- Строитель -- Разделяет создание объекта от его представления, всегда создает тот же тип объекта. Прототип -- Инициализации экземпляра, используемый для копирования или клонирования. Синглтон -- Класс только одного экземпляра с точками глобального доступа.

On_and_On 16.05.14 в 09:11

0

Структура -- Основан на идее блоков построения объектов -- Класс -- Адаптер -- Подобные интерфейсы различных классов, следовательно, классы могут работать вместе, несмотря несовместимые интерфейсы -- объект -- Адаптер -- Подобные интерфейсы различных классов, следовательно, классы могут работать вместе, несмотря на несовместимые интерфейсы -- Мост -- Разделяет интерфейс объекта от его реализации так что оба могут изменяться независимо -- Композитный -- структура простых и составных объектов, что делает весь объект больше, чем просто сумма его частей. -- Декоратор -- Динамически добавляет альтернативный обработку объектов. -- Фасад -- Включает единственный класс, который скрывает сложность всей подсистемы. -- Приспособленец -- Небольшой экземпляр, используемый для эффективного обмена информацией, которая содержится в другом месте. -- Прокси -- Прототип, представляющий настоящий объект.

On_and_On 16.05.14 в 12:44

0

Поведенческий -- Основан манере деятельности объекта и работы вместе.

On_and_On 16.05.14 в 12:54

0

Класс -- Интерпретатор -- Способ включить элементы языка в приложении, чтобы соответствовать грамматике предполагаемого языка. -- Шаблонный Метод -- Создает оболочку алгоритма в методе, а после прокладывает точные шаги к подклассу.

On_and_On 16.05.14 в 13:08

0

Объект -- Цепочка Ответственности -- Способ передачи запроса между цепочкой объектов, чтобы найти объект, который может обрабатывать запрос. -- Команда -- Инкапсуляция запроса команды как объекта, с тем чтобы, логировать и / или ставить в очередь запросы, и обеспечивать обработку ошибок для необработанных запросов. -- Итератор -- Последовательно дает доступ к элементам коллекции, не зная внутреннюю работу в коллекции. -- Посредник -- определяет упрощенную связь между классами, чтобы предотвратить группу классов ссылающуюся явно друг на друга. -- Хранитель -- Захват внутреннего состояние объекта, чтобы имелась возможность восстановить его позже. -- Наблюдатель -- Способ уведомления изменения к ряду классов для обеспечения согласованности между классами. -- Состояние -- Альтернативное поведение объекта при изменении его состояния -- Стратегия -- Инкапсулирует алгоритм внутри класса, отделяющей выбор от реализации -- Посетитель -- Добавляет новую операцию в класс без изменения класса

On_and_On 16.05.14 в 13:19

0
Минутку...