Archive

Posts Tagged ‘Patterns’

Реализация шаблонов (паттернов) проектирования Observer и Mediator на JavaScript

Часто при разработке JS-компонента требуется обеспечить его взаимодействие с другими JS-компонентами. Причем такое взаимодействие лучше не реализовывать в коде самих компонентов, а реализовать с помощью подписки на события компонентов.

Для реализации данного механизма можно использовать шаблоны (паттерны) проектирования «Наблюдатель» (Observer) и «Посредник» (Mediator). В Техногрете студии Артемия Лебедева есть хорошая статья «Слабое связывание компонентов в JavaScript. Произвольные события», в которой приводится пример реализации данных шаблонов проектирования на JavaScript.

Рубрики:JavaScript Метки: ,

Появилась бесплатная мини-книга по реализации основных шаблонов (паттернов) проектирования на JavaScript и jQuery

Обложка книги Essential JavaScript And jQuery Design PatternsАдди Османи выложил в своем блоге бесплатную мини-книгу — Essential JavaScript and jQuery Design Patterns.
В первой части книги рассматривается общая информация о шаблонах (паттернах) проектирования, понятие анти-паттерн и три основные категории шаблонов (порождающие, структурные и шаблоны поведения).
Во второй части книги приведены примеры реализации на чистом JavaScript следующих шаблонов: Constructor (Конструктор), Singleton (Одиночка), Module (Модуль), Revealing Module (Открытый модуль), Prototype (Прототип), Façade (Фасад), Factory (Фабрика) и Decorator (Декоратор). Также применительно к JavaScript рассматривается концепция DRY (аббревиатура от Don’t Repeat Yourself, что в переводе на русский означает — Не Повторяйтесь).
В третьей части книги рассматривается библиотека jQuery, как пример реализации основных шаблонов проектирования: Lazy Initialization (Отложенная (ленивая) инициализация), Composite (Компоновщик), Wrapper (Оболочка), Façade (Фасад), Observer (Наблюдатель), Iterator (Итератор), Strategy (Стратегия), Proxy (Заместитель), Builder (Строитель), Prototype (Прототип) и Flyweight (Приспособленец).

Рубрики:JavaScript Метки: , , ,