- •« Шаблоны проектирования» (5 курс, 9 семестр, 2011–2012 учебный год)
- •1 Понятие шаблона проектирования. Средства описания шаблонов проектирования.
- •2 История развития шаблонов проектирования. Классификация шаблонов проектирования.
- •12 Структурные шаблоны. Adapter
- •13 Cтруктурные шаблоны. Facade
- •14 Структурные Шаблоны. Bridge
- •15 Структурные Шаблоны. Decorator
- •16 Структурные Шаблоны. Proxy, Composite
- •23 Поведенческие Шаблоны. Command
- •24 Поведенческие Шаблоны. Strategy
- •25 Поведенческие Шаблоны. Observer
- •26 Поведенческие Шаблоны. Iterator
- •27 Поведенческие Шаблоны. Chain Of Responsibility
- •28 Поведенческие Шаблоны. Mediator
- •29 Поведенческие Шаблоны. Template Method
- •30 Архитектурные шаблоны. Классификация
- •31 Архитектурные шаблоны. Клиент-серверные системы
- •32 Архитектурные шаблоны. Многоуровневые системы
- •33 Архитектурные шаблоны. Репозиторий
- •34 Архитектурные шаблоны. Поток данных
- •35 Архитектурные шаблоны. Централизованное управление Вызов - возврат (сценарий транзакции - частный случай).
- •Диспетчер
- •36 Архитектурные шаблоны. Управление, основанное на событиях Передача сообщений
- •Управляемый прерываниями
- •37 Архитектурные шаблоны. Active Record
- •38 Архитектурные шаблоны. Unit of Work
- •39 Архитектурные шаблоны. Lazy Load
- •40 Архитектурные шаблоны. Identity Map
- •41 Архитектурные шаблоны. Data Access Object
- •42 Шаблоны проектирования пользовательского интерфейса. Model-View-Controller
- •43 Шаблоны проектирования пользовательского интерфейса. Document-View
- •44 Шаблоны проектирования пользовательского интерфейса. Model-View-Presenter
- •45 Шаблоны проектирования пользовательского интерфейса. Model-View-ViewModel
- •Назначение
- •Использование
- •Описание
- •46 Антишаблоны
29 Поведенческие Шаблоны. Template Method
Поведенческие шаблоны (англ. behavioral patterns) — шаблоны проектирования, определяющие алгоритмы и способы реализации взаимодействия различных объектов и классов.
Template Method
Проблема Определить алгоритм и реализовать возможность переопределения некоторых шагов алгоритма для подклассов (без изменения общей структуры алгоритма.
Решение "АбстрактныйКласс" определяет абстрактные Операции(), замещаемые в конкретных подклассах для реализации шагов алгоритма, и реализует ШаблонныйМетод(), определяющий "скелет" алгоритма. "КонкретныйКласс" релизует Операции(), выполняющие шаги алгоритма способом, который зависит от подкласса. "КонкретныйКласс" предполагает, что инвариантные шаги алгоритма будут выполнены в "АбстрактномКлассе".
Применимость
Однократное использование инвариантной части алгоритма, с оставлением изменяющейся части на усмотрение наследникам.
Локализация и вычленение общего для нескольких классов кода для избежания дублирования.
Разрешение расширения кода наследниками только в определенных местах.
30 Архитектурные шаблоны. Классификация
Согласно предложенному принципу классификации паттерны проектирования архитектурные системные паттерны объединены в группы в соответствии с теми задачами, для решения которых они разработаны. Для организации классов или обьектов системы в базовые подструктуры используются структурные архитектурные паттерны. С другой стороны, для обеспечения требуемого системного функционала первостепенное значение имеет адекватная организация взаимодействия отдельных архитектурных элементов системы - этой цели служат управления.
В свою очередь, паттерны управления разделены на паттерны централизованного управления, (то есть паттерны, в которых одна из подсистем полностью отвечает за управление, запускает и завершает работу остальных подсистем) и паттерны управления, подразумевающие децентрализованное реагирование на события, (согласно этим паттернам на внешние события, отвечает соответствующая подсистема.). Также следует упомянуть, что поскольку проектирование взаимодействия той или иной подсистемы с реляционной базой данных является неотъемлемой частью разработки корпоративных информационных систем, среди паттернов управления выделена большая группа паттернов, описывающих организацию связи с базой данных.
Структурные (Репозиторий, Клиент-сервер);
Патерны управления: Централизованного управления(Вызов-возврат, Диспетчер),Основанные на событиях(Передача сообщений, Управляемый прерываниями),Обеспечивающие взаимодействие с БД(Активная запись, Единица работы).
31 Архитектурные шаблоны. Клиент-серверные системы
Описание Данные и процессы системы распределены между несколькими процессорами. Паттерн имеет три основных компонента: набор автономных серверов, (предоставляют сервисы другим подсистемам), набор подсистем - клиентов (которые вызывают сервисы, предоставляемые серверами) и сеть (служит для доступа клиентов к сервисам). Клиенты должны знать имена серверов и сервисов, в то время как серверам не надо знать имена клиентов и их количество. Клиенты получают доступ к сервисам, предоставляемым серверами посредством удаленного вызова процедур.
Рекомендации Данный подход можно использовать при реализации систем, основанных на репозитории, который поддерживается как сервер системы. Подсистемы, имеющие доступ к репозиторию, являются клиентами.
Преимущества Данный паттерн формирует распределенную архитектуру, ее эффективно использовать в сетевых системах с множеством распределенных процессоров В систему легко добавить новый сервер и интегрировать его с остальной частью системы или же обновить сервисы, не воздействуя на другие части системы.
Недостатки При работе серверы и клиенты обмениваются данными, но при большом объеме передаваемых между серверами и клиентами данных могут возникнуть проблемы с пропускной способностью сети.