Design Patterns : Elements of Reusable Object-Oriented Software


Design Patterns: Elements of Reusable Object-Oriented Software



Download 4,06 Mb.
Pdf ko'rish
bet109/288
Sana07.04.2022
Hajmi4,06 Mb.
#535140
1   ...   105   106   107   108   109   110   111   112   ...   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 
148 
new 
self error: 'cannot create new object' 
default 
SoleInstance isNil ifTrue: [SoleInstance := super new]. 
^ SoleInstance 
2.
Subclassing the Singleton class.
The main issue is not so much defining 
the subclass but installing its unique instance so that clients will be 
able to use it. In essence, the variable that refers to the singleton 
instance must get initialized with an instance of the subclass. The simplest 
technique is to determine which singleton you want to use in the Singleton's 
Instance operation. An example in the Sample Code shows how to implement 
this technique with environment variables.
Another way to choose the subclass of Singleton is to take the implementation 
of Instance out of the parent class (e.g., MazeFactory) and put it in the 
subclass. That lets a C++ programmer decide the class of singleton at 
link-time (e.g., by linking in an object file containing a different 
implementation) but keeps it hidden from the clients of the singleton. 
The link approach fixes the choice of singleton class at link-time, which 
makes it hard to choose the singleton class at run-time. Using conditional 
statements to determine the subclass is more flexible, but it hard-wires 
the set of possible Singleton classes. Neither approach is flexible enough 
in all cases. 
A more flexible approach uses a 
registry of singletons
. Instead of having 
Instance define the set of possible Singleton classes, the Singleton classes 
can register their singleton instance by name in a well-known registry. 
The registry maps between string names and singletons. When Instance needs 
a singleton, it consults the registry, asking for the singleton by name. 
The registry looks up the corresponding singleton (if it exists) and returns 
it. This approach frees Instance from knowing all possible Singleton classes 
or instances. All it requires is a common interface for all Singleton classes 
that includes operations for the registry: 
class Singleton { 
public: 
static void Register(const char* name, Singleton*); 
static Singleton* Instance(); 
protected: 



Download 4,06 Mb.

Do'stlaringiz bilan baham:
1   ...   105   106   107   108   109   110   111   112   ...   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