Dependency injection (DI) არის pattern, სადაც object მიიღებს თავის dependencies-ებს გარედან (injected) ნაცვლად იმისა, რომ თავად შექმნას ისინი. ეს ხელს უწყობს loose coupling-ს, testability-ს და flexibility-ს — ფундამენტური, ფართოდ გამოყენებული pattern თანამედროვე software-ში.
რა არის dependency injection
WITHOUT DI → a class CREATES its own dependencies (tightly coupled):
class OrderService { constructor() { this.db = new Database(); } } // hardcoded dependency
WITH DI → dependencies are PROVIDED (injected) from outside:
class OrderService { constructor(db) { this.db = db; } } // db is injected
→ the object doesn't create/control its dependencies → they're given to it
