Design Patterns : Elements of Reusable Object-Oriented Software


Design Patterns: Elements of Reusable Object-Oriented Software



Download 4,06 Mb.
Pdf ko'rish
bet249/288
Sana07.04.2022
Hajmi4,06 Mb.
#535140
1   ...   245   246   247   248   249   250   251   252   ...   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 
371 
2.
A visitor gathers related operations and separates unrelated ones.
Related 
behavior isn't spread over the classes defining the objectstructure; it's 
localized in a visitor. Unrelated sets of behavior arepartitioned in their 
own visitor subclasses. That simplifies both theclasses defining the 
elements and the algorithms defined in thevisitors. Any algorithm-specific 
data structures can be hidden in thevisitor. 
3.
Adding new ConcreteElement classes is hard.
The Visitor pattern makes it 
hard to add new subclasses of Element. Eachnew ConcreteElement gives rise 
to a new abstract operation on Visitor anda corresponding implementation 
in every ConcreteVisitor class. Sometimes adefault implementation can be 
provided in Visitor that can be inheritedby most of the ConcreteVisitors, 
but this is the exception rather thanthe rule. 
So the key consideration in applying the Visitor pattern is whether youare 
mostly likely to change the algorithm applied over an objectstructure or 
the classes of objects that make up the structure. TheVisitor class 
hierarchy can be difficult to maintain when newConcreteElement classes are 
added frequently. In such cases, it'sprobably easier just to define 
operations on the classes that make upthe structure. If the Element class 
hierarchy is stable, but you arecontinually adding operations or changing 
algorithms, then the Visitorpattern will help you manage the changes. 
4.
Visiting across class hierarchies.
An iterator (see Iterator (289)) can 
visit the objects in astructure as it traverses them by calling their 
operations. But an iteratorcan't work across object structures with 
different types of elements. Forexample, the Iterator interface defined 
on page 295 can access only objects of type Item: 
template  
class Iterator { 
// ...
Item CurrentItem() const; 
}; 
This implies that all elements the iterator can visit have a common 
parentclass Item. 
Visitor does not have this restriction. It can visit objects thatdon't have 
a common parent class. You can add any type of object to aVisitor interface. 
For example, in 
class Visitor { 
public: 
// ... 
void VisitMyType(MyType*); 



Download 4,06 Mb.

Do'stlaringiz bilan baham:
1   ...   245   246   247   248   249   250   251   252   ...   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