Odpovídáte na názor ke článku Dependency Injection ještě jednou :-).
Tady musím reagovat. Konstruktor potomka nemusí být stejný, problém je, když musím změnit konstruktor předka, protože přibyla další dependency. Pak musím taky změnit všechny volání konstruktoru předka ve všech konstruktorech potomků a typicky přidat dependency do konstruktorů potomků.
Tohle peklo vidím na stávajícím projektu u datových objektů. Řešení je použít builder pattern u datových objektů, problém je, že třeba Lombok u Builder stále upravuje konstruktor místo, aby si vzal atributy přímo z Builder. U DI komponent je to horší, Builder snad DI implementace ani nepodporují. Dá se použít DI setter, který bude ale fungovat jenom do doby, než potomek tu metodu přepíše a nebude volat super, bo v době implementace metoda v předku ještě neexistovala. Dá se i předat DI factory samotná, ale to už trochu porušuje princip IoC.
Takže tady nějaké problémy jsou. Nenastávají příliš často, ale řešení příliš dobrá nejsou.
Přečteno 21 846×
Přečteno 19 817×
Přečteno 18 835×
Přečteno 18 549×
Přečteno 17 429×