Design Patterns : Elements of Reusable Object-Oriented Software


Design Patterns: Elements of Reusable Object-Oriented Software



Download 4,06 Mb.
Pdf ko'rish
bet169/288
Sana07.04.2022
Hajmi4,06 Mb.
#535140
1   ...   165   166   167   168   169   170   171   172   ...   288
Bog'liq
GOF Design Patterns

Design Patterns: Elements of Reusable Object-Oriented Software 
248 
composition an essential part of Decorator. That isn't the case inProxy, because 
Proxy focuses on one relationship

between the proxyand its subject

and that 
relationship can be expressed statically. 
These differences are significant because they capture solutions tospecific 
recurring problems in object-oriented design. But thatdoesn't mean these patterns 
can't be combined. You might envision aproxy-decorator that adds functionality 
to a proxy, or adecorator-proxy that embellishes a remote object. Although such 
hybrids
might
be useful (we don't have real examples handy), they aredivisible 
into patterns that 
are
useful. 


Design Patterns: Elements of Reusable Object-Oriented Software 
249 
5.
 
Behavioral Patterns 
Behavioral patterns are concerned with algorithms and theassignment of 
responsibilities between objects. Behavioral patternsdescribe not just patterns 
of objects or classes but also the patternsof communication between them. These 
patterns characterize complexcontrol flow that's difficult to follow at run-time. 
They shift yourfocus away from flow of control to let you concentrate just on 
the wayobjects are interconnected. 
Behavioral class patterns use inheritance to distribute behaviorbetween classes. 
This chapter includes two such patterns. Template Method (360) is the simpler 
and more common ofthe two. A template method is an abstract definition of an 
algorithm.It defines the algorithm step by step. Each step invokes either 
anabstract operation or a primitive operation. A subclass fleshes outthe algorithm 
by defining the abstract operations. The otherbehavioral class pattern is 
Interpreter (274), whichrepresents a grammar as a class hierarchy and implements 
aninterpreter as an operation on instances of these classes. 
Behavioral object patterns use object composition rather thaninheritance. Some 
describe how a group of peer objects cooperate toperform a task that no single 
object can carry out by itself. Animportant issue here is how peer objects know 
about each other. Peerscould maintain explicit references to each other, but that 
wouldincrease their coupling. In the extreme, every object would knowabout every 
other. The Mediator (305) pattern avoidsthis by introducing a mediator object 
between peers. The mediatorprovides the indirection needed for loose coupling. 
Chain of Responsibility (251) provides even loosercoupling. It lets you send 
requests to an object implicitly through achain of candidate objects. Any candidate 
may fulfill the requestdepending on run-time conditions. The number of candidates 
isopen-ended, and you can select which candidates participate in thechain at 
run-time. 
The Observer (326) pattern defines and maintains adependency between objects. 
The classic example of Observer is inSmalltalk Model/View/Controller, where all 
views of the model are notified whenever themodel's state changes. 
Other behavioral object patterns are concerned with encapsulatingbehavior in an 
object and delegating requests to it. The Strategy (349) pattern encapsulates 
an algorithm in anobject. Strategy makes it easy to specify and change the algorithm 
anobject uses. The Command (263) pattern encapsulates arequest in an object so 
that it can be passed as a parameter, storedon a history list, or manipulated 
in other ways. The State (338) pattern encapsulates the states of an objectso 
that the object can change its behavior when its state object changes. Visitor 
(366) encapsulates behavior that wouldotherwise be distributed across classes, 



Download 4,06 Mb.

Do'stlaringiz bilan baham:
1   ...   165   166   167   168   169   170   171   172   ...   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