Erich Gamma Ralph Johnson Richard Helm John Vlissides Addison-Wesley



Download 6,32 Mb.
Pdf ko'rish
bet125/273
Sana02.03.2022
Hajmi6,32 Mb.
#479589
1   ...   121   122   123   124   125   126   127   128   ...   273
Bog'liq
Priemioop

a Abstraction
(Window) - абстракция:
- определяет интерфейс абстракции;
- хранит ссылку на объект типа Implement or;
a RefinedAbstraction
(iconWindow) - уточненная абстракция:
- расширяет интерфейс, определенный абстракцией Abstraction;
a
 Implementor
(Windowlmp) - реализатор:
- определяет интерфейс для классов реализации. Он не обязан точно соот-
ветствовать интерфейсу класса Abstraction. На самом деле оба ин-
терфейса могут быть совершенно различны. Обычно интерфейс класса
Implementor предоставляет только примитивные операции, а класс
Abstraction определяет операции более высокого уровня, базирующие-
ся на этих примитивах;
a Concretelmplementor
(XWindowlmp, PMWindowlmp) - конкретный реа-
лизатор:
- содержит конкретную реализацию интерфейса класса Implementor.


Структурные паттерны
Отношения
Объект Abstraction перенаправляет своему объекту Implementor запро-
сы клиента.
Результаты
Результаты применения паттерна мост таковы:
а
 отделение реализации от интерфейса.
Реализация больше не имеет посто-
янной привязки к интерфейсу. Реализацию абстракции можно конфигури-
ровать во время выполнения. Объект может даже динамически изменять
свою реализацию.
Разделение классов Abstraction и Implementor устраняет также зави-
симости от реализации, устанавливаемые на этапе компиляции. Чтобы из-
менить класс реализации, вовсе не обязательно перекомпилировать класс
Abstraction и его клиентов. Это свойство особенно важно, если необхо-
димо обеспечить двоичную совместимость между разными версиями биб-
лиотеки классов.
Кроме того, такое разделение облегчает разбиение системы на слои и тем са-
мым позволяет улучшить ее структуру. Высокоуровневые части системы долж-
ны знать только о классах Abstraction и Implementor;
а
 повышение степени расширяемости.
Можно расширять независимо иерар-
хии классов Abstraction и Implementor;
а
 сокрытие деталей реализации от клиентов.
Клиентов можно изолировать
от таких деталей реализации, как разделение объектов класса Implementor
и сопутствующего механизма подсчета ссылок.
Реализация
Если вы предполагаете применить паттерн мост, то подумайте о таких вопро-
сах реализации:
а
 только один класс Implementor.
В ситуациях, когда есть только одна реализа-
ция, создавать абстрактный класс Implementor необязательно. Это вырож-
денный случай паттерна мост- между классами Abstraction и Imp-
lementor существует взаимно-однозначное соответствие. Тем не менее
Download 6,32 Mb.

Do'stlaringiz bilan baham:
1   ...   121   122   123   124   125   126   127   128   ...   273




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish