Odpovídáte na názor ke článku PHP Jet - Dependency Injection, továrny a tak dále.
Ano, autor php-jet používá "service locator" (to kdyby si chtěl přečíst kritiku tohoto vzoru).
Ne, článek od Davida nepopisuje ani nepoužívá vzor repository. Návrhový vzor repository řeší jak ukládat, případně načítat entity. Davidův článek popisuje jak poskládat instanci a jak jí dodat závislosti.
Ne, DI neporušuje SRP, naopak. Je důkladnou snahou o jeho dodržení. DI zajistí, že třída má jen svou zodpovědnost, a všechny požadované detaily nesouvisející s jeho prací jsou delegovány do závislostí. SL toto nesplňuje, protože třída ještě navíc musí řešit získání těch závislostí.
S továrnami na řešení on-demand vytváření závislostí v DIC jsem se setkal i v jiných jazycích (C#, Rust, Java). Nette je v tomto zajímavé spíš tím, že si umí ty továrny vymejšlet sám.
Každopádně pokud máte nějaký neotřelý způsob, jak dodat závislosti objektu, rád se nechám poučit.
Přečteno 21 846×
Přečteno 19 817×
Přečteno 18 835×
Přečteno 18 550×
Přečteno 17 430×