Design Patterns : Elements of Reusable Object-Oriented Software


Design Patterns: Elements of Reusable Object-Oriented Software



Download 4,06 Mb.
Pdf ko'rish
bet229/288
Sana07.04.2022
Hajmi4,06 Mb.
#535140
1   ...   225   226   227   228   229   230   231   232   ...   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 
341 
difficult to modify and extend. The State patternoffers a better way to 
structure state-specific code. The logic thatdetermines the state 
transitions doesn't reside in monolithicif or switch statements but instead 
is partitionedbetween the State subclasses. Encapsulating each state 
transition andaction in a class elevates the idea of an execution state 
to fullobject status. That imposes structure on the code and makes itsintent 
clearer. 
2.
It makes state transitions explicit.
When an object defines its current state 
solely in terms of internaldata values, its state transitions have no 
explicit representation;they only show up as assignments to some variables. 
Introducingseparate objects for different states makes the transitions 
moreexplicit. Also, State objects can protect the Context frominconsistent 
internal states, because state transitions are atomicfrom the Context's 
perspective

they happen by rebinding 
one
variable (the Context's State 
object variable), notseveral [dCLF93]. 
3.
State objects can be shared.
If State objects have no instance variables

that 
is, the state theyrepresent is encoded entirely in their type

then contexts 
can sharea State object. When states are shared in this way, they 
areessentially flyweights (see Flyweight (218)) with nointrinsic state, 
only behavior. 
Implementation 
The State pattern raises a variety of implementation issues: 
1.
Who defines the state transitions?
The State pattern does not specify which 
participant defines thecriteria for state transitions. If the criteria are 
fixed, then theycan be implemented entirely in the Context. It is generally 
moreflexible and appropriate, however, to let the State 
subclassesthemselves specify their successor state and when to make 
thetransition. This requires adding an interface to the Context thatlets 
State objects set the Context's current state explicitly. 
Decentralizing the transition logic in this way makes it easy tomodify or 
extend the logic by defining new State subclasses. Adisadvantage of 
decentralization is that one State subclass will haveknowledge of at least 
one other, which introduces implementationdependencies between 
subclasses. 
2.
A table-based alternative.
In 
C++ Programming Style
[Car92], 
Cargilldescribes another way to impose structure on state-driven code: 
Heuses tables to map inputs to state transitions. For each state, atable 
maps every possible input to a succeeding state. In effect,this approach 



Download 4,06 Mb.

Do'stlaringiz bilan baham:
1   ...   225   226   227   228   229   230   231   232   ...   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
vaccination certificate
sertifikat ministry
Ishdan maqsad
fanidan mustaqil
matematika fakulteti
o’rta ta’lim
haqida umumiy
fanlar fakulteti
pedagogika universiteti
ishlab chiqarish
moliya instituti
fanining predmeti