Factory metódus egy kreatív tervezési minta, amely lehetővé teszi, hogy egy felület vagy egy osztály hozzon létre egy objektumot, de hagyja, hogy az alosztályok eldöntsék, melyik osztályt vagy objektumot példányosítsák. A gyári módszerrel a legjobb módja van egy objektum létrehozásának. Itt az objektumok anélkül jönnek létre, hogy a logikát az ügyfél elé tárnák, az új típusú objektum létrehozásához pedig az ügyfél ugyanazt a közös felületet használja.
problémák, amelyekkel gyári módszer nélkül szembesülünk:
 képzelje el, hogy saját startupja van, amely telekocsi szolgáltatást nyújt az ország különböző részein. Az alkalmazás kezdeti verziója csak a kétkerekű telekocsi szolgáltatást biztosítja, de az idő múlásával az alkalmazás népszerűvé válik, és most három-és négykerekű telekocsi is hozzáadásra kerül.
 ez egy nagyszerű hír! de mi a helyzet az indítás szoftverfejlesztőivel. Meg kell változtatniuk az egész kódot, mert most a kód nagy része a kétkerekű osztályhoz kapcsolódik, és a fejlesztőknek módosítaniuk kell a teljes kódbázist.
 miután elvégezte ezeket a változtatásokat, vagy a fejlesztők a rendetlen kóddal vagy a lemondó levéllel zárulnak.
Localizer app
Diagrammatikus ábrázolása problémák használata nélkül gyári módszer
 értsük meg a koncepció még egy példát, amely kapcsolódik a fordítások és lokalizáció a különböző nyelveken.
 tegyük fel, hogy létrehoztunk egy alkalmazást, amelynek fő célja az egyik nyelv lefordítása a másikra, és jelenleg az alkalmazásunk csak 10 nyelven működik. Most az alkalmazásunk széles körben népszerűvé vált az emberek körében, de a kereslet hirtelen nőtt, hogy további 5 nyelvet tartalmazzon.
 ez egy nagyszerű hír! csak a tulajdonos számára, nem a fejlesztők számára. Meg kell változtatniuk az egész kódot, mert most a kód nagy része csak a meglévő nyelvekkel párosul, ezért a fejlesztőknek módosítaniuk kell a teljes kódbázist, ami valóban nehéz feladat.
nézzük meg a probléma kódját, amellyel a gyári módszer használata nélkül szembesülhetünk.
Megjegyzés: A következő kód A gyári módszer használata nélkül íródik.
  class FrenchLocalizer:         def __init__(self):     self.translations = {"car": "voiture", "bike": "bicyclette",   "cycle":"cyclette"}     def localize(self, message):       return self.translations.get(msg, msg)    class SpanishLocalizer:       def __init__(self):     self.translations = {"car": "coche", "bike": "bicicleta",   "cycle":"ciclo"}     def localize(self, msg):       return self.translations.get(msg, msg)    class EnglishLocalizer:       def localize(self, msg):   return msg    if __name__ == "__main__":       f = FrenchLocalizer()   e = EnglishLocalizer()   s = SpanishLocalizer()       message =      for msg in message:   print(f.localize(msg))   print(e.localize(msg))   print(s.localize(msg))  
megoldás gyári módszerrel:
a megoldás az, hogy az egyenes objektumépítési hívásokat a speciális gyári módszerre hívja. Valójában nem lesz különbség az objektum létrehozásában, de a gyári módszeren belül hívják őket.
például: a Two_Wheeler, Three_Wheeler és Four_wheeler osztályoknak végre kell hajtaniuk a telekocsi felületet, amely deklarálja a ride nevű metódust. Minden osztály egyedileg hajtja végre ezt a módszert.
solution_factory_diagram
most értsük meg a gyári módszert egy példa segítségével:
  class FrenchLocalizer:         def __init__(self):     self.translations = {"car": "voiture", "bike": "bicyclette",   "cycle":"cyclette"}     def localize(self, message):       return self.translations.get(msg, msg)    class SpanishLocalizer:       def __init__(self):   self.translations = {"car": "coche", "bike": "bicicleta",   "cycle":"ciclo"}     def localize(self, msg):       return self.translations.get(msg, msg)    class EnglishLocalizer:       def localize(self, msg):   return msg    def Factory(language ="English"):       localizers = {   "French": FrenchLocalizer,   "English": EnglishLocalizer,   "Spanish": SpanishLocalizer,   }     return localizers()    if __name__ == "__main__":     f = Factory("French")   e = Factory("English")   s = Factory("Spanish")     message =      for msg in message:   print(f.localize(msg))   print(e.localize(msg))   print(s.localize(msg))  
Osztálydiagram a gyári módszerhez:
nézzük meg az osztálydiagramot, figyelembe véve az útmegosztás példáját.
Gyár_pattern_class_diagrma
a gyári módszer használatának előnyei:
- könnyen hozzáadhatjuk az új típusú termékeket anélkül, hogy megzavarnánk a meglévő ügyfélkódot.
 - Általánosságban elmondható, hogy a termékek és az alkotói osztályok és tárgyak közötti szoros kapcsolat elkerülhető.
 
a gyári módszer használatának hátrányai:
- a particluar concrete product objektum létrehozásához előfordulhat, hogy az ügyfélnek alosztályba kell sorolnia a creator osztályt.
 - a végén hatalmas számú kis fájlokat, azaz, túlzsúfoltság a fájlokat.
 - egy grafikus rendszerben a felhasználó bemenetétől függően különböző alakzatokat rajzolhat, például téglalapot, négyzetet, kört stb. De a könnyű mind a fejlesztők, valamint az ügyfél, tudjuk használni a gyári módszert, hogy hozzon létre a példány függően a felhasználó bemenet. Akkor nem kell megváltoztatnunk az ügyfélkódot egy új alakzat hozzáadásához.
 - egy szállodai foglalási oldalon foglalhatunk helyet 1 szoba, 2 szoba, 3 szoba stb. Itt a felhasználó megadhatja a lefoglalni kívánt szobák számát. A gyári módszerrel létrehozhatunk egy gyári osztályt AnyRooms amely segít nekünk a példány létrehozásában a felhasználó bemenetétől függően. Ismét nem kell megváltoztatnunk az ügyfél kódját az új létesítmény hozzáadásához.
 
alkalmazhatóság :
további olvasás: gyári Minta C-ben++