Vậy Dependency Injection (DI) là gì?

Nó là phương pháp giảm sự phụ thuộc giữa các module trong code bằng cách TIÊM (Injection) các khởi tạo của class này vào khởi tạo của class khác 💉

Khái niệm hàn lâm của nó trông như sau:

Dependency Injection (DI) là gì?

Về bản chất, DI là một kỹ thuật giúp giảm sự phụ thuộc trực tiếp giữa các thành phần trong hệ thống của bạn. Thay vì một đối tượng tự tạo ra các đối tượng mà nó cần (dependencies), các đối tượng này sẽ được "tiêm 💉 " từ bên ngoài vào.

Tại sao nên sử dụng DI?

Untitled

Cơ mà dev đọc khái niệm thì sao mà hiểu! Phải đọc code:

**// Constructor Injection
class Engine {
  constructor() {
    this.power = 100;
  }
}

class Car {
  constructor(engine) {
    this.engine = engine;
  }

  start() {
    console.log("Starting car with engine power:", this.engine.power);
  }
}

const engine = new Engine();
const car = new Car(engine); // Dependency Injection
car.start(); // Output: "Starting car with engine power: 100"**

Trong ví dụ trên, đối tượng Engine được "tiêm" vào đối tượng Car thông qua constructor. Điều này có nghĩa là Car không còn phụ thuộc vào việc tự tạo ra Engine.

Đó, dễ òm luôn.

Tiếp theo mới hơi khoai xí nè:

Vậy, có mấy loại dependence injection? - 3 LOẠI Các loại Dependency Injection: