Design Patterns : Elements of Reusable Object-Oriented Software



Download 4,06 Mb.
Pdf ko'rish
bet234/288
Sana07.04.2022
Hajmi4,06 Mb.
#535140
1   ...   230   231   232   233   234   235   236   237   ...   288
Bog'liq
GOF Design Patterns

Also Known As 
Policy 
Motivation 
Many algorithms exist for breaking a stream of text into lines.Hard-wiring all 
such algorithms into the classes that require themisn't desirable for several 
reasons: 

Clients that need linebreaking get more complex if they includethe 
linebreaking code. That makes clients bigger and harder tomaintain, 
especially if they support multiple linebreaking algorithms. 

Different algorithms will be appropriate at different times. We don'twant 
to support multiple linebreaking algorithms if we don't use themall. 

It's difficult to add new algorithms and vary existing ones whenlinebreaking 
is an integral part of a client. 
We can avoid these problems by defining classes that encapsulatedifferent 
linebreaking algorithms. An algorithm that's encapsulated inthis way is called 

strategy

Suppose a Composition class is responsible for maintaining andupdating the 
linebreaks of text displayed in a text viewer.Linebreaking strategies aren't 


Design Patterns: Elements of Reusable Object-Oriented Software 
350 
implemented by the class Composition.Instead, they are implemented separately 
by subclasses of the abstractCompositor class. Compositor subclasses implement 
different strategies: 

SimpleCompositor
implements a simple strategy that determines linebreaks 
one at atime. 

TeXCompositor
implements the TeX algorithm for finding linebreaks. This 
strategytries to optimize linebreaks globally, that is, one paragraph at 
atime. 

ArrayCompositor
implements a strategy that selects breaks so that each row 
has a fixednumber of items. It's useful for breaking a collection of icons 
intorows, for example. 
A Composition maintains a reference to a Compositor object. Whenever aComposition 
reformats its text, it forwards this responsibility to itsCompositor object. The 
client of Composition specifies whichCompositor should be used by installing the 
Compositor it desires intothe Composition. 
Applicability 
Use the Strategy pattern when 

many related classes differ only in their behavior. Strategiesprovide a 
way to configure a class with one of many behaviors. 

you need different variants of an algorithm. For example, you might 
definealgorithms reflecting different space/time trade-offs.Strategies 
can be used when these variants are implemented as a classhierarchy of 
algorithms [HO87]. 

an algorithm uses data that clients shouldn't know about. Use theStrategy 
pattern to avoid exposing complex, algorithm-specific datastructures. 

a class defines many behaviors, and these appear as multipleconditional 
statements in its operations. Instead of manyconditionals, move related 
conditional branches into their ownStrategy class. 



Download 4,06 Mb.

Do'stlaringiz bilan baham:
1   ...   230   231   232   233   234   235   236   237   ...   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