Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Параметризованные фабричные методы

Читайте также:
  1. II. Рыночные методы установления цены на товар
  2. IV. ФОРМЫ И МЕТОДЫ КОНТРОЛЯ, СИСТЕМА ОЦЕНОК
  3. IV. Эконометрические методы определения цен
  4. Абстрактные методы и классы
  5. Активные методы исследования
  6. Анализ имущественного положения организации: цели, источники информации, методы и приемы, показатели оценки структуры баланса.
  7. Анализ источников финансирования: цели, источники информации, методы и приемы, оценка структуры и динамики.
  8. Анатомические особенности сердца и методы его исследования
  9. Анатомо-физиологические особенности и методы исследования крови, эндокринной, пищеварительной и мочевыделительной систем
  10. АНАТОМО-ФИЗИОЛОГИЧЕСКИЕ ОСОБЕННОСТИ И МЕТОДЫ ИССЛЕДОВАНИЯ СИСТЕМЫ ОРГАНОВ ДЫХАНИЯ И КРОВООБРАЩЕНИЯ. НОРМАЛЬНАЯ ЭКГ.

 

Структурные паттерны:

Adapter Адаптер Изменение интерфейса
Bridge Мост Разделение реализации объекта
Composite Компоновщик Сложная структура и состав объекта
Decorator Декоратор Изменение обязанностей объекта без порождения подкласса
Facade Фасад Интерфейс к подсистеме
Flyweight Приспособленец Снижение накладных расходов на хранение объектов
Proxy Заместитель Способ доступа к объекту, смена его местоположения

 

Adapter: Название и классификация: Адаптер – паттерн, структурирующий классы и объекты.

Назначение: Преобразует интерфейс одного класса в интерфейс другого, который ожидают клиенты. Адаптер обеспечивает совместную работу классов с несовместимыми интерфейсами, которая без него была бы невозможна.Известен также под именем
Wrapper

Adapter: применимость

Применяйте адаптер классов, когда:

1)Хотите использовать существующий класс, но его интерфейс не соответствует вашим потребностям.

2)Собираетесь создать повторно используемый класс, который должен взаимодействовать с заранее неизвестными или не связанными с ним классами, имеющими несовместимые интерфейсы.

Применяйте адаптер объектов, когда:

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

Adapter (КЛАССА): Неприменим, если требуется адаптировать не только конкретный класс, но и его подклассы. Возможно изменение в адаптере операций адаптируемого класса. Вводится только один объект (непосредственно адаптера).

Adapter (ОБЪЕКТА):

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

Decorator:

Название и классификация:Декоратор – паттерн, структурирующий объекты

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

Известен также под именем Wrapper.

 

Decorator: мотивация


 

Decorator: применимость

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

Decorator: структура

Decorator: особенности

· Большая гибкость, чем у статического наследования.

· Создание цепочек декораторов, в том числе из одних и тех же в одной цепочке

· Позволяет избежать перегруженных функциями классов на верхних уровнях иерархии

· Декоратор и его компонент не идентичны

· Множество мелких объектов

· Соответствие интерфейсов декоратора и декорируемого объекта

o Возможное отсутствие абстрактного класса декоратора

o Облегчение, по возможности, декорируемого класса

o Изменяется «облик», а не внутренне устройство объекта

Proxy:

Название и классификация:Заместитель – паттерн, структурирующий объекты.

Назначение: Является суррогатом другого объекта и контролирует доступ к нему.

Известен также под именем Surrogate

Мотивация:

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

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

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

Защищающий заместитель: контролирует доступ к исходному объекту.

Умная ссылка:

З амена обычного указателя:

· подсчет числа ссылок на реальный объект

· загрузка объекта в память при первом обращении к нему

· проверка и установка блокировки на реальный объект при обращении к нему, чтобы никакой другой объект не смог в это время изменить его

Proxy: структура

Диаграмма объектов:

Паттерны поведения:

Interpreter Интерпретатор Грамматика и интерпретация языка
Iterator Итератор Способ обхода элементов агрегата
Command Команда Время и способ выполнения запроса за счет заключения запроса в объект
Observer Наблюдатель Способ, которым зависимые объекты поддерживают себя в актуальном состоянии
Visitor Посетитель Операции, которые можно применить к объекту (добавление операций к объектам)
Mediator Посредник Способ кооперации взаимодействующих объектов через промежуточный
State Состояние Варьирование поведения объекта в зависимости от его состояния
Strategy Стратегия Заключение алгоритма в объект, возможность замены алгоритмов
Memento Хранитель Закрытая информация, хранящаяся вне объекта, и время ее сохранения
Chain of Responsibility Цепочка обязанностей Набор объектов, выполняющих запрос
Template Method Шаблонный метод Выделение в абстракцию шагов алгоритма

Iterator: Название и классификация: Итератор – опаттерн поведения объектов.

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

Известен также под именем Cursor

Iterator: мотивация

Iterator: применимость

Используйте итератор: 1) Для доступа к содержимому агрегированных объектов без раскрытия их внутреннего представления.

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

Iterator: структура




Дата добавления: 2015-09-11; просмотров: 86 | Поможем написать вашу работу | Нарушение авторских прав

Локальные переменные | Легальные значения | Объявление, инициализация, заполнение | Встроенный в язык механизм проверки и обработки | Особый синтаксис описания обработчиков исключений | Виды наследования | Super(...) | Виды наследования | Лекция №4 | OutputStreamWriter |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.01 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав