Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Haulmont-презентации Java / Haulmont. java_se_9.ppt
Скачиваний:
46
Добавлен:
16.03.2015
Размер:
1.27 Mб
Скачать

Singleton

11 Участники

Singleton – одиночка. Определяет операцию Instance, которая позволяет клиентам получать доступ к единственному экземпляру. Может нести ответственность за создание собственного уникального экземпляра

Отношения

Клиенты получают доступ к экземпляру класса Singleton только через его операцию Instance

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Factory Method

12 Название и классификация образца

Фабричный метод – паттерн, порождающий классы

Назначение

Определяет интерфейс для создания объекта, но оставляет подклассам решение о том, какой класс инстанцировать. Фабричный метод позволяет классу делегировать инстанцирование подклассам

Известен также под именем Virtual Constructor (виртуальный конструктор)

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Factory Method

13 Factory Method: мотивация

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Factory Method

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

классу заранее неизвестно, объекты каких классов ему нужно создавать

класс спроектирован так, чтобы объекты, которые он создает, специфицировались подклассами

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

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Factory Method

15 Factory Method: структура

Отношения

Создатель «полагается» на свои подклассы в определении фабричного метода, который будет возвращать экземпляр подходящего конкретного продукта

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Factory Method

16Участники

Product (Document) – продукт – определяет интерфейс объектов, создаваемых фабричным методом

ConcreteProduct (MyDocument) – конкретный продукт – реализует интерфейс Product

Creator (Application) – создатель – объявляет фабричный метод, возвращающий объект типа Product. Creator может также определять реализацию по умолчанию фабричного метода, который возвращает объект ConcreteProduct; может вызывать фабричный метод для создания объекта Product

ConcreteCreator (MyApplication) – конкретный создатель – замещает фабричный метод,

возвращающий объект ConcreteProduct

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Factory Method

17Factory Method: особенности

Две основных разновидности: класс Сгeator – абстрактный и не содержит реализации

объявленного в нем фабричного метода. Creator –

конкретный класс, в котором по умолчанию есть

реализация фабричного метода. В первом случае для определения реализации необходимы подклассы,

поскольку никакого разумного умолчания не

существует. Во втором случае конкретный класс Creator использует фабричный метод, главным образом ради повышения гибкости. Выполняется правило: “Создавай объекты в отдельной операции, чтобы подклассы могли подменить способ их создания”. Соблюдение этого правила гарантирует,

что авторы подклассов смогут при необходимости

изменить класс объектов, инстанцируемых их

родителем

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Factory Method

18Factory Method: особенности

Параметризованные фабричные методы. Это еще один вариант паттерна, который позволяет

фабричному методу создавать разные виды

продуктов. Фабричному методу передается параметр,

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

метода, разделяют общий интерфейс Product. В

примере с документами класс Application может поддерживать разные виды документов. Вы передаете методу CreateDocument лишний параметр, который и определяет, документ какого вида нужно создать

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

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

19Adapter – Адаптер. Преобразует интерфейс одного класса в интерфейс другого, который

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

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

Composite – Компоновщик. Компонует объекты в древовидные структуры для представления иерархий часть-целое.

Позволяет клиентам единообразно трактовать

индивидуальные и составные объекты

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

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

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

Facade – Фасад. Предоставляет унифицированный интерфейс вместо набора интерфейсов некоторой подсистемы. Фасад определяет интерфейс более высокого уровня, который упрощает использование подсистемы

Flyweight – Приспособленец. Использует разделение для эффективной поддержки множества мелких объектов

Proxy – Заместитель. Является суррогатом другого объекта и контролирует доступ к нему

Все права защищены. www.haulmont.ru info@haulmont.com

© HAULMONT, 2013

Соседние файлы в папке Haulmont-презентации Java