Là một mẫu thiết kế giúp giảm bớt sự ràng buộc giữa các thành phần và làm cho mã nguồn trở nên linh hoạt hơn. Có ba loại dependency injection:

  1. Constructor: ta truyền dependency vào tham số của constructor.
  2. Property: ta thiết lập dependency là giá trị của các thuộc tính.
  3. Method: truyền dependency vào tham số của các phương thức.

Ưu điểm:

  • Cải thiện khả năng kiểm thử của mã nguồn: chúng ta có thể truyền dependency vào một component để test component đó.
  • Mã nguồn linh hoạt hơn: có thể sửa đổi hoặc thay thế các component mà không làm ảnh hưởng đến các phần còn lại của ứng dụng.

Ví dụ constructor injection:

class BookService {
	private db: DatabaseConnection; // Database connection object
 
	constructor(db: DatabaseConnection) {
		this.db = db;
	}
}

Resources