Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпора теория [3240 вопросов].doc
Скачиваний:
60
Добавлен:
15.06.2014
Размер:
3.2 Mб
Скачать
  1. Структурные паттерны. “Facade”. “Flyweight”.

Façade (Фасад)

Предоставляет унифицированный интерфейс к множеству интерфейсов в некоторой подсистеме. Определяет интерфейс более высокого уровня, облегчающий работу с подсистемой.

Flyweight (Приспособленец)

Использует разделение для эффективной поддержки большого числа мел­ких объектов.

  1. Паттерны поведения. “Chain of Responsibility”. “Command”.

Chain of Responsibility (Цепочка обязанностей)

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

Аспект: Объект, выполняющий запрос.

Применимость: есть более одного объекта, способного обработать запрос, причем настоящий обработчик заранее неизвестен и должен быть найден автоматически; вы хотите отправить запрос одному из нескольких объектов, не указывая явно, какому именно; набор объектов, способных обработать запрос, должен задаваться динамически.

+ ослабляется связанность (объект не обязан знать, кто именно обработает его запрос).

- нет гарантии обработки запроса, поскольку у него нет явного получателя.

Command (Команда)

Проблема: необходимо послать объекту запрос, не зная о том, выполнение какой операции запрошено и кто будет получателем.

+ разрывает связь между объектом, инициирующим операцию, и объектом, инициирующим инфу о том, как ее выполнить. Кроме этого, создается объект command, который можно расширять и манипулировать им как объектом.

  1. Паттерны поведения. “Iterator”. “Mediator”. “Interpreter”.

Iterator (итератор)

Назначение: предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего предствления. Позволяет отделить хранение от способов перебора.

Аспект: способ обхода элементов агрегата (контейнера).

Применимость:

  • для доступа к содержимому агрегированных объектов без раскрытия их внутреннего представления;

  • для поддержки нескольких активных обходов одного и того же агрегированного объекта;

  • для предоставления единообразного интерфейса с целью обхода различных агрегированных структур (то есть для поддержки полиморфной итерации).

Interpreter (Интерпритатор)

Проблема: имеется часто встречающаяся, подверженная изменениям задача.

Решение: создать интерпретатор, который решает данную задачу.

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

- сопровождение грамматики с большим числом правил затруднительно.

Mediator (посредник)

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

Решение: создать объект инкапсулирующий способ взаимодействия множества объектов.

+ устраняется связность между «коллегами», централизуется управление.

  1. Паттерны поведения. “Memento”. “Visitor”.