Factory VS DI Kontejner – může si factory schovávat instance?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
danielseek
Člen | 42
+
0
-

Dobrý den,
řeším takové formální dilema. Dejme tomu, že mám factory Factory, které vytváři instance určité třídy Class. Tyto instance si následně ukládám do statické proměnné Factory::instances.

Neblížím se v tuto chvíli k návrhovému vzoru DI kontejneru? Domnívám se, že se stále jedná o factory, protože v kontejneru nemůžu (neměl bych) mít dvě service mající stejné třídy. Ale je toto skutečně podmínkou?

Daniel

Filip Procházka
Moderator | 4668
+
0
-

Ani zdaleka. Možná tak ServiceLocator.

Honza Marek
Člen | 1664
+
0
-

v kontejneru nemůžu (neměl bych) mít dvě service mající stejné třídy

Proč ne?

BTW ono u těch vzorů často záloží i na použití třídy, nejen na jejím kódu. Nette DIC kontejner se taky stane service locatorem, pokud si ho budu předávat do vytvářených objektů a tam z něj vytahovat další servisy.