GeeksforGeeks (Magyar)

A gyári módszer egy kreatív tervezési minta, azaz az objektum létrehozásával kapcsolatos. A gyári mintában objektumot hozunk létre anélkül, hogy a kliensnek kitennénk a létrehozási logikát, és az ügyfél ugyanazon közös felületet használja új típusú objektumok létrehozásához.
Az ötlet egy statikus tag-függvény (statikus gyári módszer) használata, amely létrehozza a & példányokat ad vissza, elrejtve az osztály moduljainak részleteit a felhasználó elől.

A gyári minta az objektum létrehozásának egyik alapvető tervezési elve, amely lehetővé teszi az ügyfelek számára objektumok létrehozását egy könyvtár (az alábbiakban kifejtve) oly módon, hogy ne legyen szorosan összekapcsolva a könyvtár osztályhierarchiájával.

Mit jelent, ha könyvtárról és kliensekről beszélünk?
Könyvtár olyan valami, amelyet harmadik fél nyújt, amely néhány nyilvános API-t tesz elérhetővé, és az ügyfelek felhívják ezeket a nyilvános API-kat a feladatuk elvégzése érdekében. Nagyon egyszerű példa lehet az Android OS által biztosított különféle nézetek.

Miért a gyári minta?
Értsük meg egy példával:



Kimenet:

I am two wheeler

Mi a probléma a fenti kialakítással?
Amint azt a fenti példában észrevehette, az ügyfél a TwoWheeler bármelyikét létrehozza vagy a FourWheeler az objektum elkészítése során elért valamilyen bemenet alapján.
Mondjuk, a könyvtár egy új, háromkerekű osztályt vezet be, amely háromkerekű járműveket is tartalmaz. Mi történne? Az ügyfél végül egy új mást láncol, ha a feltételes létrán hozza létre a ThreeWheeler objektumait. Amihez viszont újra kell fordítani az Ügyfelet. Tehát minden egyes alkalommal, amikor új változtatásokat hajtanak végre a könyvtár oldalán, az Ügyfélnek végre kell hajtania néhány megfelelő módosítást a végén, és újra össze kell állítania a kódot. Rosszul hangzik? Ez nagyon rossz tervezési gyakorlat.

Hogyan kerülhető el a probléma?
A válasz az, hogy hozzon létre egy statikus (vagy gyári) módszert. Lássuk az alábbi kódot.



Kimenet:

I am three wheeler

A fenti példában teljesen leválasztottuk az objektum létrehozásának típusát az Ügyfélről. A könyvtár feladata, hogy egy bemenet alapján eldöntse, hogy mely objektumtípust hozza létre. Az ügyfélnek csak felhívnia kell a könyvtár gyárának Create metódusát, és át kell adnia a kívánt típust anélkül, hogy aggódnia kellene az objektumok létrehozásának tényleges megvalósításáért.

Köszönet a Rumplestiltskin-nek a fenti magyarázatért.

A gyári módszer további példái:

  1. Tegyük fel, hogy egy “Rajz” rendszerben a felhasználó bemenetétől függően különböző képek rajzolhatók, például négyzet, téglalap, kör. Itt gyári módszerrel létrehozhatunk példányokat a felhasználó inputjától függően. Új típusú alakzat hozzáadásához nem kell megváltoztatni az ügyfél kódját.
  2. Egy másik példa: Az utazási oldalon foglalhatunk vonatjegyet, buszjegyet és repülőjegyet is. Ebben az esetben a felhasználó megadhatja utazási típusát: „busz”, „vonat” vagy „repülés”.
    Itt van egy absztrakt „AnyTravel” osztály, statikus tagfunkcióval „GetObject”, amely a felhasználó utazási típusától függően hozza létre a „BusTravel” vagy a „TrainTravel” visszatérő objektum & visszatérési objektumát. A „BusTravel” vagy a „TrainTravel” olyan közös funkciókkal rendelkezik, mint az utas neve, az eredet, a célparaméterek.

Köszönet Abhijit Sahának, aki megadta az első 2 példát.

Write a Comment

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