Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

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






Участники






Лабораторная работа №4

Порождающие паттерны

Паттерн Bridge (мост)


Содержание

1. Описание паттерна.. 3

2. Задание к лабораторной работе.. 10

3. Приложение №1. Базовые классы... 11

 

Описание паттерна

 

Название и классификация паттерна

Мост - паттерн, структурирующий объекты.

 

Назначение

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

 

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

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

  • хотите избежать постоянной привязки абстракции к реализации. Так, например, бывает, когда реализацию необходимо выбирать во время выполнения программы;
  • и абстракции, и реализации должны расширяться новыми подклассами. В таком случае паттерн мост позволяет комбинировать разные абстракции и реализации и изменять их независимо;
  • изменения в реализации абстракции не должны сказываться на клиентах, то есть клиентский код не должен перекомпилироваться;
  • (только для C++!) вы хотите полностью скрытьот клиентов реализацию абстракции. В C++ представление класса видимо через его интерфейс;
  • вы хотите разделить одну реализацию между несколькими объектами (быть может, применяя подсчет ссылок), и этот факт необходимо скрыть от клиента.

 

Структура

 

 

 

Участники

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

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

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

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

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

  • Implementor (Windowlmp) - реализатор:

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

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

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

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.005 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал