Junior — Middle
V čom spočíva rozdiel medzi princípom inverzie závislostí a metódami injektáže závislostí v aplikáciách?
sobes.tech AI
Odpoveď od AI
Princíp inverzie závislostí (Dependency Inversion Principle, DIP) je jeden z piatich princípov SOLID a hovorí, že:
- Moduly vysokého levelu by nemali závisieť od modulov nízkeho levelu. Oba by mali závisieť od abstrakcií.
- Abstrakcie by nemali závisieť od detailov. Detaily by mali závisieť od abstrakcií.
Inými slovami, DIP sa zameriava na zníženie pevného spojenia medzi komponentmi pomocou použitia abstrakcií (napríklad rozhraní).
Metódy vkladania závislostí (Dependency Injection, DI) sú špecifické techniky, ktoré umožňujú implementáciu DIP v praxi. DI je spôsob odovzdávania závislostí (objektov, služieb) zvonku do triedy, namiesto ich vytvárania vnútri nej.
Príklady metód DI:
- Vkladanie cez konštruktor — závislosti sa odovzdávajú cez konštruktor.
- Vkladanie cez setter — závislosti sa odovzdávajú cez settery.
- Vkladanie cez rozhranie alebo polia (napríklad pomocou frameworkov).
Takže, DIP je princíp návrhu, a DI je spôsob jeho realizácie v kóde.