Design Patterns : Elements of Reusable Object-Oriented Software


Design Patterns: Elements of Reusable Object-Oriented Software



Download 4,06 Mb.
Pdf ko'rish
bet235/288
Sana07.04.2022
Hajmi4,06 Mb.
#535140
1   ...   231   232   233   234   235   236   237   238   ...   288
Bog'liq
GOF Design Patterns
Копасов Игорь (1), Т Е Л Е Ф О Н О Г Р А М М А ЗООМ, 20201546 п.80 использ., Oliy matematika, презентация индустрия мутакил иши, 3000 most common words in English, Sun'iy intellekt, 1638511850 AE, 1638511850 AE, Hisob-raqan (Patent boji), O'RQ-600 23-MODDA, Talabaning haftalik hisoboti namunasi , iikinchi hafta amaliyoti., Таҳлил тест
Design Patterns: Elements of Reusable Object-Oriented Software 
351 
Structure 
Participants 

Strategy
(Compositor) 
o
declares an interface common to all supported algorithms. Context 
uses this interface to call the algorithm defined by a 
ConcreteStrategy

ConcreteStrategy
(SimpleCompositor, TeXCompositor,ArrayCompositor) 
o
implements the algorithm using the Strategy interface. 

Context
(Composition) 
o
is configured with a ConcreteStrategy object. 
o
maintains a reference to a Strategy object. 
o
may define an interface that lets Strategy access its data. 
Collaborations 

Strategy and Context interact to implement the chosen algorithm. Acontext 
may pass all data required by the algorithm to the strategywhen the algorithm 
is called. Alternatively, the context can passitself as an argument to 
Strategy operations. That lets the strategycall back on the context as 
required. 

A context forwards requests from its clients to its strategy. Clientsusually 
create and pass a ConcreteStrategy object to the context;thereafter, 
clients interact with the context exclusively. There isoften a family of 
ConcreteStrategy classes for a client to choosefrom. 
Consequences 
The Strategy pattern has the following benefits and drawbacks: 


Design Patterns: Elements of Reusable Object-Oriented Software 
352 
1.
Families of related algorithms.
Hierarchies of Strategy classes define a 
family of algorithms orbehaviors for contexts to reuse. Inheritance canhelp 
factor out common functionality of the algorithms. 
2.
An alternative to subclassing.
Inheritance offers another way to support 
a variety of algorithms orbehaviors. You can subclass a Context class 
directly to give itdifferent behaviors. But this hard-wires the behavior 
into Context.It mixes the algorithm implementation with Context's, making 
Contextharder to understand, maintain, and extend. And you can't vary 
thealgorithm dynamically. You wind up with many related classes whoseonly 
difference is the algorithm or behavior they employ.Encapsulating the 
algorithm in separate Strategy classes lets you varythe algorithm 
independently of its context, making it easier toswitch, understand, and 
extend. 
3.
Strategies eliminate conditional statements.
The Strategy pattern offers 
an alternative to conditional statements forselecting desired behavior. 
When different behaviors are lumped into oneclass, it's hard to avoid using 
conditional statements to select theright behavior. Encapsulating the 
behavior in separate Strategy classeseliminates these conditional 
statements. 
For example, without strategies, the code for breakingtext into lines could 
look like 
void Composition::Repair () { 
switch (_breakingStrategy) { 
case SimpleStrategy: 
ComposeWithSimpleCompositor(); 
break; 
case TeXStrategy: 
ComposeWithTeXCompositor(); 
break; 
// ... 

// merge results with existing composition, if necessary

The Strategy pattern eliminates this case statement by delegating 
thelinebreaking task to a Strategy object: 
void Composition::Repair () { 
_compositor->Compose(); 
// merge results with existing composition, if necessary 




Download 4,06 Mb.

Do'stlaringiz bilan baham:
1   ...   231   232   233   234   235   236   237   238   ...   288




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

    Bosh sahifa
davlat universiteti
ta’lim vazirligi
axborot texnologiyalari
maxsus ta’lim
zbekiston respublikasi
guruh talabasi
O’zbekiston respublikasi
nomidagi toshkent
o’rta maxsus
davlat pedagogika
texnologiyalari universiteti
toshkent axborot
xorazmiy nomidagi
rivojlantirish vazirligi
pedagogika instituti
Ўзбекистон республикаси
tashkil etish
haqida tushuncha
таълим вазирлиги
vazirligi muhammad
O'zbekiston respublikasi
toshkent davlat
махсус таълим
respublikasi axborot
kommunikatsiyalarini rivojlantirish
vazirligi toshkent
saqlash vazirligi
fanidan tayyorlagan
bilan ishlash
Toshkent davlat
sog'liqni saqlash
uzbekistan coronavirus
respublikasi sog'liqni
coronavirus covid
koronavirus covid
vazirligi koronavirus
qarshi emlanganlik
covid vaccination
risida sertifikat
sertifikat ministry
vaccination certificate
Ishdan maqsad
fanidan mustaqil
matematika fakulteti
o’rta ta’lim
haqida umumiy
fanlar fakulteti
pedagogika universiteti
ishlab chiqarish
moliya instituti
fanining predmeti