Jedná se o jednodušší verzi návrhového vzoru (obecná) tovární metoda.
Použijeme, pokud potřebujeme funkčnost, kterou není schopen dodat konstruktor.
Pokud potřebujeme získat odkaz na objekt, ale z různých důvodů nechceme či nemůžeme použít konstruktor.
Vlastnosti
- Statická metoda která nahrazuje konstruktor.
- Nemusí vracet vlastní instanci ale instanci zvoleného potomka.
Použití
- Potřebujeme rozhodnout, zda se opravdu vytvoří nová instance
- Potřebujeme vracet instance různých typů
- Potřebujeme provést nějakou akci ještě před tím, než se zavolá rodičovský konstruktor
- Potřebujeme více verzí se stejnými sadami parametrů – tovární metody mohou mít různé názvy
Příklad 1
public static getClovek() { switch ($i++ % 3){ case 0: return new Lenoch(); break; case 1: return new Pracant(); break; ... } }