Objektų fabrikas

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Peršokti į: navigaciją, paiešką
 NoFonti.svg  Šiam straipsniui ar jo daliai trūksta šaltinių ar nuorodų į juos.
Jūs galite padėti Vikipedijai įrašydami tinkamas išnašas ar nuorodas į šaltinius.
 Noia 64 apps xeyes.png  Šį straipsnį gali būti gana sunku suprasti be papildomų informacijos šaltinių.
Galite perrašyti dėstomus teiginius plačiau ir suteikiant daugiau konteksto.

Objektų fabrikas (liet. kalvė[reikalingas šaltinis]) – objektas, kurio užduotis kurti naujus kitai nei jis pats klasei priklausančius objektus.

Objektų fabrikas turi vieną ar keletą metodų, kurių grąžinama reikšmė yra reikalaujamas sukurti objektas. Šie metodai gali turėti kuriamus objektus aprašančių parametrų. Fabrikas paprastai turi ir jo nuostatas keičiančius metodus. Priklausomai nuo būsenos ir metodo parametrų, fabrikas gali parinkti sukuriamo objekto klasę (konstruktorius to padaryti negali). Prireikus iš tėvinės fabriko klasės (neretai būna tik sąsaja) kildinama specializuota dukterinė klasė. Toks fabrikas gali būti perduodamas kaip sudėtingesnio algoritmo parametras ir ten kurti algoritme dalyvaujančius objektus, kuriems būdingas specifinis programuotojui reikalingas elgesys (tarkim, šifruotą kodavimą naudojančias tinklo jungtis (angl. sockets) vietoje paprastų).

Nors fabriko metodas gana paplitęs, ne visos net ir aukšto lygio programavimo kalbos turi specialias konstrukcijas dirbti su fabrikais. Dažniau fabrikas yra tiesiog vienas iš daugelio programos objektų.

Kad fabrikus būtų lengviau atpažinti, jų klasių vardai paprastai susideda iš objektų kuriuos jie kuria, klasės vardo, papildyto sutartine priesaga (tarkim, SocketFactory – jungčių fabrikas).[reikalingas šaltinis]