Design Patterns : Elements of Reusable Object-Oriented Software


Design Patterns: Elements of Reusable Object-Oriented Software



Download 4,06 Mb.
Pdf ko'rish
bet218/288
Sana07.04.2022
Hajmi4,06 Mb.
#535140
1   ...   214   215   216   217   218   219   220   221   ...   288
Bog'liq
GOF Design Patterns

Design Patterns: Elements of Reusable Object-Oriented Software 
324 
Given a class ItemType, we can iterate over a collection ofits instances as 
follows
7

class ItemType { 
public: 
void Process(); 
// ... 
}; 
Collection aCollection; 
IterationState* state; 
state = aCollection.CreateInitialState(); 
while (!aCollection.IsDone(state)) { 
aCollection.CurrentItem(state)->Process(); 
aCollection.Next(state); 

delete state; 
The memento-based iteration interface has two interesting benefits: 
1.
More than one state can work on the same collection. (The sameis true of 
the Iterator (289) pattern.) 
2.
It doesn't require breaking a collection's encapsulationto support 
iteration. The memento is only interpreted by thecollection itself; no one 
else has access to it. Other approaches toiteration require breaking 
encapsulation by making iterator classesfriends of their collection 
classes (see Iterator (289)). The situation is reversed in thememento-based 
implementation: Collection is a friend of theIteratorState. 
The QOCA constraint-solving toolkit stores incremental information inmementos 
[HHMV92]. Clients can obtain a memento that characterizesthe current solution 
to a system of constraints. The memento containsonly those constraint variables 
that have changed since the lastsolution. Usually only a small subset of the 
solver's variableschanges for each new solution. This subset is enough to return 
thesolver to the preceding solution; reverting to earlier solutionsrequires 
restoring mementos from the intervening solutions. Hence youcan't set mementos 
in any order; QOCA relies on a history mechanism torevert to earlier solutions. 
Related Patterns 
Command (263): Commands can use mementos to maintainstate for undoable operations. 
Iterator (289): Mementoscan be used for iteration as described earlier. 



Download 4,06 Mb.

Do'stlaringiz bilan baham:
1   ...   214   215   216   217   218   219   220   221   ...   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