Gyári módszer tervezési mintája

Intent

  • Adjon meg egy felületet egy objektum létrehozásához, de hagyja, hogy az alosztályok döntsék el, melyik osztály példányos. A gyári módszer lehetővé teszi az osztály definerstantizálását az alosztályokba.
  • “Virtuális” konstruktor meghatározása.
  • A new operátor károsnak tartja.

Probléma

A keretrendszernek szabványosítania kell az építészeti modellt egy sor alkalmazásra, de lehetővé kell tennie az egyes alkalmazások számára, hogy meghatározzák saját tartományuk objektumait, és biztosítsák azok példányosítását.

Megbeszélés

A gyári módszer az objektumok létrehozása, mivel a Sablon módszer egy algoritmust hajt végre. A szuperosztály meghatározza az összes szokásos és általános viselkedést (tiszta virtuális “helyőrzőket” használva a létrehozási lépésekhez), majd a létrehozás részleteit az ügyfél által szállított alosztályokra delegálja.

A Factory Method a dizájnt testreszabhatóbbá és csak egy kicsit bonyolultabb. Más tervezési minták új osztályokat igényelnek, míg a Factory Method csak új műveletet igényel.

Az emberek gyakran a Factory Method-ot használják az objektumok létrehozásának szokásos módszereként; de nem szükséges, ha: az az osztály, amelyik példányt soha változások, vagy a példányosítás egy olyan műveletben történik, amelyet az alosztályok könnyen felülírhatnak (például az inicializálási művelet).

A Factory Method hasonló az Abstract Factory-hez, de a hangsúlycsaládok nélkül.

Factory Methods egy építészeti keretrendszer rutinszerűen meghatározza, majd a keretrendszer felhasználója hajtja végre.

Struktúra

A Factory Method megvalósítása, amelyet a lenti Négyek bandájában tárgyalunk, nagyrészt átfedésben van hogy az Absztrakt Gyár. Ebből a szempontból az ebben a fejezetben bemutatott előadás az azóta népszerűvé vált megközelítésre összpontosít.

A gyár egyre népszerűbb meghatározása A metódus: egy osztály static metódusa, amely az adott osztály objektumát adja vissza. De egy konstruktortól eltérően a tényleges objektum, amelyet visszaad, egy alosztály példánya lehet. Unlikea konstruktor, egy Lehetséges, hogy a meglévő objektum újrafelhasználásra kerül egy létrehozott új objektum helyett. A konstruktortól eltérően a gyári metódusok eltérő és leíróbb nevekkel rendelkezhetnek (pl. >

Az ügyfél teljesen leválasztva a származtatott osztályok implementációjának részleteiről. Most már lehetséges a polimorf létrehozása.

Példa

A gyári módszer meghatározza az interfészt az objektumok létrehozásához, de az alosztályoknak eldönthetik, mely osztályokat kell példázniuk. ez minta. A műanyag játékok gyártói feldolgozzák a műanyag öntőport, és a kívánt formájú formákba fecskendezik be a műanyagot. A játék osztályát (autó, akciófigura stb.) A penész határozza meg.

Ellenőrző lista

  1. Ha öröklési hierarchiája van, amely polimorfizmust gyakorol, fontolja meg egy polimorf létrehozási képesség hozzáadását egy static gyári módszer definiálásával az alaposztályban.
  2. Tervezze meg az argumentumokat a gyári módszer szerint. Milyen tulajdonságok vagy tulajdonságok szükségesek és elegendők a helyes levezetett osztály azonosításához a megjelenítéshez?
  3. Fontolja meg egy olyan belső “objektumkészlet” megtervezését, amely lehetővé teszi az objektumok újrafelhasználását a semmiből való létrehozás helyett.
  4. Fontolja meg az összes kivitelező elkészítése private vagy protected.

ökölszabályok

  • Az absztrakt Factory osztályokat gyakran Factory Methods-szal valósítják meg, de prototípus segítségével is megvalósíthatók.
  • A Factory Method-okat általában a Template Methods-ban hívják meg.
  • Factory Method: létrehozás öröklés útján . Prototípus: létrehozás delegálás útján.
  • Gyakran a tervek a gyári módszer használatával indulnak (kevésbé bonyolult, testreszabható, alosztályok szaporodnak), és az AbstractFactory, a Prototype vagy a Builder (rugalmasabb, összetettebb) felé fejlődnek, ahogy a tervező felfedezi, hol több rugalmasságra van szükség.
  • A prototípushoz nincs szükség alosztályozásra, de anicializálási műveletre van szükség. A gyári módszer alosztályozást igényel, de az inicializálás nem szükséges.
  • A gyári módszer előnye: hogy ugyanazt az anyagot többször is vissza tudja adni, vagy egy alosztályt adhat vissza, nem pedig az adott típusú objektumot.
  • Egyes Factory Method szószólók javasolják, hogy nyelvtervezésként (vagy ennek hiányában, stílus kérdésként) ) abszolút minden kivitelezőnek magán- vagy védettnek kell lennie. Senkinek sem az a dolga, hogy egy osztály új objektumot állítson elő, vagy újrahasznosítson egy régit.
  • A new operátor károsnak ítélte meg. Különbség van egy objektum kérése és létrehozása között. Az new operátor mindig létrehoz egy objektumot, és nem zárja be az objektum létrehozását.A gyári módszer kikényszeríti a beágyazást, és lehetővé teszi egy objektum kérését anélkül, hogy elválaszthatatlanul összekapcsolódna a létrehozás aktussal.

Támogassa ingyenes weboldalunkat és birtokolja az e-könyvet!

  • 22 tervezési minta és 8 alapos elmagyarázás
  • 406 jól felépített, könnyen olvasható, zsargonmentes oldal
  • 228 világos és hasznos illusztrációk és ábrák
  • Archívum 4 nyelvű kódpéldákkal
  • Minden támogatott eszköz: EPUB / MOBI / PDF formátum

További információ …

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük