„Tervezési minták (Sznikák)” változatai közötti eltérés

Kavics (vitalap | szerkesztései)
Kavics (vitalap | szerkesztései)
34. sor: 34. sor:
== Abstract factory ==
== Abstract factory ==
'''Példa:''' Ablakos rendszerek, GUI vezérlőelemek (ablak, nyomógomb, kiválasztógomb, stb.)
'''Példa:''' Ablakos rendszerek, GUI vezérlőelemek (ablak, nyomógomb, kiválasztógomb, stb.)
'''Használjuk, amikor'''
'''Használjuk, amikor'''
* a rendszernek függetlennek kell lennie az általa létrehozott dolgoktól ("termék" objektumok, pl. felhasználói felület elemek)
* a rendszernek függetlennek kell lennie az általa létrehozott dolgoktól ("termék" objektumok, pl. felhasználói felület elemek)
* a rendszernek több termékcsaláddal kell együttműködnie
* a rendszernek több termékcsaláddal kell együttműködnie
* a rendszernek szorosan összetartozó "termék" objektumok adott családjával kell dolgoznia, és ezt akarjuk kényszeríteni a rendszerben
* a rendszernek szorosan összetartozó "termék" objektumok adott családjával kell dolgoznia, és ezt akarjuk kényszeríteni a rendszerben
'''Előnyök'''
'''Előnyök'''
* Elszigeteli a konkrét osztályokat
* Elszigeteli a konkrét osztályokat
* A termékcsaládokat könnyű kicserélni
* A termékcsaládokat könnyű kicserélni
* Elősegíti a termékek közötti konzisztenciát
* Elősegíti a termékek közötti konzisztenciát
'''Hátrányok'''
'''Hátrányok'''
* Nehéz új termék hozzáadása. Ekkor az Abstract Factory egész hierarchiáját módosítani kell, mert az interfész rögzíti a létrehozható termékeket
* Nehéz új termék hozzáadása. Ekkor az Abstract Factory egész hierarchiáját módosítani kell, mert az interfész rögzíti a létrehozható termékeket
* Megjegyzés: ezt bizonyos esetekben ki lehet kerülni
* Megjegyzés: ezt bizonyos esetekben ki lehet kerülni
== Singleton ==
== Singleton ==
'''Célja:''' Biztosítja, hogy egy osztályból csak egy példányt lehessen létrehozni, és ehhez az egy példányhoz globális hozzáférést biztosít.
'''Célja:''' Biztosítja, hogy egy osztályból csak egy példányt lehessen létrehozni, és ehhez az egy példányhoz globális hozzáférést biztosít.