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

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

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

Читайте также:
  1. IV. Применимость теории Хорни
  2. Применимость
  3. Применимость
  4. Применимость
  5. Применимость различных формулировок

Используйте паттерн мост, когда:

а хотите избежать постоянной привязки абстракции к реализации. Так, на­пример, бывает, когда реализацию необходимо выбирать во время выполне­ния программы;

а и абстракции, и реализации должны расширяться новыми подклассами. В таком случае паттерн мост позволяет комбинировать разные абстрак­ции и реализации и изменять их независимо;

о изменения в реализации абстракции не должны сказываться на клиентах, то есть клиентский код не должен перекомпилироваться;


Паттерн Bridge

 

а (только для C++!) вы хотите полностью скрыть от клиентов реализацию аб­стракции. В C++ представление класса видимо через его интерфейс;

а число классов начинает быстро расти, как мы видели на первой диаграмме из раздела «Мотивация». Это признак того, что иерархию следует разделить на две части. Для таких иерархий классов Рамбо (Rumbaugh) использует термин «вложенные обобщения» [RBP+91];

а вы хотите разделить одну реализацию между несколькими объектами (быть может, применяя подсчет ссылок), и этот факт необходимо скрыть от клиента. Простой пример - это разработанный Джеймсом Коплиеном класс String [Сор92], в котором разные объекты могут разделять одно и то же представ­ление строки (StringRep).

Структура

Участники

a Abstraction (Window) - абстракция:

- определяет интерфейс абстракции;

- хранит ссылку на объект типа Implement or;

a RefinedAbstraction (iconWindow) - уточненная абстракция:

- расширяет интерфейс, определенный абстракцией Abstraction;
a Implementor (Windowlmp) - реализатор:

- определяет интерфейс для классов реализации. Он не обязан точно соот­
ветствовать интерфейсу класса Abstraction. На самом деле оба ин­
терфейса могут быть совершенно различны. Обычно интерфейс класса
Implementor предоставляет только примитивные операции, а класс
Abstraction определяет операции более высокого уровня, базирующие­
ся на этих примитивах;

a Concretelmplementor (XWindowlmp, PMWindowlmp) - конкретный реа­лизатор:

- содержит конкретную реализацию интерфейса класса Implementor.


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

Отношения

Объект Abstraction перенаправляет своему объекту Implementor запро­сы клиента.




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

Результаты | Порождающие паттерны | Паттерн Singleton | Обсуждение порождающих паттернов | Глава 4. Структурные паттерны | Паттерн Adapter | Структурные паттерны | Результаты | Паттерн Adapter | Структурные паттерны |


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