Design Patterns : Elements of Reusable Object-Oriented Software


Design Patterns: Elements of Reusable Object-Oriented Software



Download 4,06 Mb.
Pdf ko'rish
bet250/288
Sana07.04.2022
Hajmi4,06 Mb.
#535140
1   ...   246   247   248   249   250   251   252   253   ...   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 
372 
void VisitYourType(YourType*); 
}; 
MyType and YourType do not have to be related throughinheritance at all. 
5.
Accumulating state.
Visitors can accumulate state as they visit each element 
in the objectstructure. Without a visitor, this state would be passed as 
extraarguments to the operations that perform the traversal, or theymight 
appear as global variables. 
6.
Breaking encapsulation.
Visitor's approach assumes that the 
ConcreteElement interface is powerfulenough to let visitors do their job. 
As a result, the pattern oftenforces you to provide public operations that 
access an element'sinternal state, which may compromise its encapsulation. 
Implementation 
Each object structure will have an associated Visitor class. Thisabstract visitor 
class declares a VisitConcreteElement operation foreach class of ConcreteElement 
defining the object structure. EachVisit operation on the Visitor declares its 
argument to be aparticular ConcreteElement, allowing the Visitor to access 
theinterface of the ConcreteElement directly. ConcreteVisitor classesoverride 
each Visit operation to implement visitor-specific behaviorfor the corresponding 
ConcreteElement class. 
The Visitor class would be declared like this in C++: 
class Visitor { 
public: 
virtual void VisitElementA(ElementA*); 
virtual void VisitElementB(ElementB*); 
// and so on for other concrete elements 
protected: 
Visitor(); 
}; 
Each class of ConcreteElement implements an Accept operationthat calls the 
matching Visit... operation on the visitorfor that ConcreteElement. Thus the 
operation that ends up gettingcalled depends on both the class of the element 
and the class of thevisitor.
10
The concrete elements are declared as 
class Element { 



Download 4,06 Mb.

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