„Tervezési minták (Sznikák)” változatai közötti eltérés
| 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. | ||