Pattern (minta) tervezés elvont gyár (Abstract Factory)

Kinevezése Abstract Factory minta

Használati minta Abstract Factory (Abstract Factory), ha:

Íme néhány példa a különféle kapcsolódó tárgyakat.

Hagyja néhány alkalmazás, amely támogatja a grafikus felhasználói felület használatra tervezték a különböző platformokon, a megjelenése a felületen meg kell egyeznie az elfogadott stílus egy adott platformon. Például, ha az alkalmazás telepítve van a Windows-alapú platform, gombokat, menüket, görgetősáv jelenik meg a stílus elfogadott for Windows. Egy csoport, egymással összefüggő tárgyak ebben az esetben azok az elemek, egy grafikus felhasználói felület egy adott platformon.

Egy utolsó példa. A generatív minták beszélni a játék stratégia, amely leírja a katonai konfrontáció között a seregeit és Karthágó. Nyilvánvaló, hogy a megjelenése és jellemzői a harci érdekében, hogy a különböző típusú csapatok (gyalogság, íjászok, lovasság) mindegyike a saját hadsereg. Ebben az esetben a családdal kapcsolatos tárgyak mindenféle harcosok ezt vagy azt a másik oldal, ebben az esetben ki kell zárni, például egy ilyen helyzetben, amikor a római lovasság harci oldalán Carthage.

Leírás Abstract Factory minta

Abstract Factory minta alapján végrehajtott üzemi módszerekkel (lásd. Pattern Factory Method).

Családi vagy csoport egymással tárgyak jellemzi több közös típusú termékek, maguk termékek ilyen típusú eltérő lesz a különböző családok. Például abban az esetben, egy stratégiai játék által termelt leggyakoribb típusú termékek lesznek gyalogság, íjászok és lovasság, minden egyes ilyen nemzetségek római hadsereg erői lényegesen különböző lehet a megjelenés és harci tulajdonságai a fegyveres erők sootvetstvuyushaya Carthage hadsereg.

A rendszert a független maradni a sajátosságait egy adott család termékek használata szükséges közös kapcsolódási pontok az összes jelentős típusú termékek. Abban az esetben, stratégiai játék, ami azt jelenti, hogy meg kell, hogy három absztrakt osztályok számára minden típusú katonák: gyalogság, íjászok és lovasok. Származnak ezek az osztályok végrehajtja a pontos részletek a mindenkori típusú katonák egy adott hadsereg.

UML-osztály diagram minta Abstract Factory

Pattern (minta) tervezés elvont gyár (Abstract Factory)

A végrehajtás a Abstract Factory minta

Itt látható a végrehajtás a Abstract Factory minta katonai stratégia „pun háborúk”. Feltételezzük, hogy a számát és típusát elején készült játék harci egységek azonosak mindkét sereg. A részletes leírást a játék megtalálható a szakaszban generálása mintákat.

Az a program lezárása a következő lesz:

Az eredmények alkalmazásának Abstract Factory minta

Előnyei a Abstract Factory minta

  • Ez elrejti a folyamat generáló berendezések, és teszi a rendszer független a fajta létrehozott objektumok jellemző a különböző családok vagy csoportok (felhasználó az ilyen objektumok segítségével a megfelelő elméleti interfészek).
  • Ez lehetővé teszi, hogy gyorsan a rendszer mindig a kívánt családnak létrehozott objektumok. Abban az esetben, multi-platform grafikus alkalmazások költözni egy új platform, amely helyettesíti a grafikai elemek (gombok, menük, görgetősáv) egyik a másikra a kívánt stílust alosztálya absztrakt gyár elég. A feltétel használata közben nem lehet az elemek különböző stílusok néhány platformon automatikusan történik.

Hátrányai a absztrakt Factory minta

  • Nehéz új típusú termékek, vagy cserélje ki a meglévő, mert a felület az alap osztály absztrakt gyári rögzített. Például, ha a stratégiai játékban kell majd bevezetni egy új típusú katonai egységek - ostromfegyverekkel, szükség lesz, hogy egy új gyár módszer, kijelentve, a felület egy polimorf alap osztály AbstractFactory és végrehajtani valamennyi alosztályát. Ahhoz, hogy távolítsa el ezt a korlátozást az alábbiak szerint. Minden létrehozott objektumok kell örökölni egy közös absztrakt alap osztály, és az egyetlen gyár módszer, mint egy lehetőséget, akkor át kell tulajdonát típusú azonosítót szeretne létrehozni. Azonban ebben az esetben figyelembe kell venni a következő. Gyári módszer létrehoz egy objektumot a kért osztály, de visszatér, hogy a közös interfész az absztrakt osztály formájában kapcsolatokat, vagy mutatókat, így a tárgy nehéz végrehajtani egy műveletet adott az alosztály.

Kapcsolódó cikkek