Design Patterns : Elements of Reusable Object-Oriented Software


Design Patterns: Elements of Reusable Object-Oriented Software



Download 4,06 Mb.
Pdf ko'rish
bet138/288
Sana07.04.2022
Hajmi4,06 Mb.
#535140
1   ...   134   135   136   137   138   139   140   141   ...   288
Bog'liq
GOF Design Patterns

Design Patterns: Elements of Reusable Object-Oriented Software 
195 
Related Patterns 
Often the component-parent link is used for a Chain of Responsibility (251). 
Decorator (196) is often used with Composite. When decorators and composites are 
used together, they will usually have a common parent class. So decorators will 
have to support the Component interface with operations like Add, Remove, and 
GetChild. 
Flyweight (218) lets you share components, but they can no longer refer to their 
parents. 
Iterator (289) can be used to traverse composites. 
Visitor (366) localizes operations and behavior that would otherwise be 
distributed across Composite and Leaf classes. 
2
It's easy to forget to delete the iterator once you're done with it. The Iterator 
pattern shows how to guard against such bugs on page 299. 


Design Patterns: Elements of Reusable Object-Oriented Software 
196 
Decorator 
Intent 
Attach additional responsibilities to an object dynamically. Decorators provide 
a flexible alternative to subclassing for extending functionality. 
Also Known As 
Wrapper 
Motivation 
Sometimes we want to add responsibilities to individual objects, not to an entire 
class. A graphical user interface toolkit, for example, should let you add 
properties like borders or behaviors like scrolling to any user interface 
component. 
One way to add responsibilities is with inheritance. Inheriting a border from 
another class puts a border around every subclass instance. This is inflexible, 
however, because the choice of border is made statically. A client can't control 
how and when to decorate the component with a border. 
A more flexible approach is to enclose the component in another object that adds 
the border. The enclosing object is called a 
decorator
. The decorator conforms 
to the interface of the component it decorates so that its presence is transparent 
to the component's clients. The decorator forwards requests to the component and 
may perform additional actions (such as drawing a border) before or after 
forwarding. Transparency lets you nest decorators recursively, thereby allowing 
an unlimited number of added responsibilities. 



Download 4,06 Mb.

Do'stlaringiz bilan baham:
1   ...   134   135   136   137   138   139   140   141   ...   288




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