Chương trình này tạo mô hình cấu hình cho phần mềm dễ thử, dễ bảo trì hơn. Nó bao gồm việc cung cấp mô- đun phụ thuộc từ bên ngoài thay vì tạo ra nó. Cách tiếp cận này đơn giản hóa vì phụ thuộc có thể dễ dàng được thay thế bằng đối tượng hay dấu chấm.

Sự tiêm chủng phụ thuộc là gì?

Chương trình lọc quan hệ phụ thuộc là một kỹ thuật mà đối tượng nhận quan hệ phụ thuộc qua các cấu trúc, thiết lập hoặc các phương pháp giao diện. Thay vì các quan hệ phụ thuộc khó chọn, mô- đun được thiết kế để chấp nhận tài nguyên bên ngoài, làm cho chúng kết hợp ít chặt chẽ hơn.

Lợi ích của việc dùng khả năng phụ thuộc

  • Khả năng thử nghiệm đã được mặc định:) Phụ thuộc có thể thay thế bằng các đối tượng giả, làm cho các đơn vị thử nghiệm dễ dàng hơn và đáng tin cậy hơn.
  • Tính năng FLT:[FLT: 1] không cần thiết thay đổi môđun phụ thuộc.
  • Tổ chức Code Organization tốt hơn: khuyến khích sự phân chia các mối quan tâm và kiến trúc sạch sẽ hơn.

Thi hành phụ thuộc trong việc bơm

Có nhiều cách để thực hiện DI:

  • Ứng viên Kinh doanh: Phụ thuộc được cung cấp qua các nhà xây dựng lớp.
  • [FLT: 0] Trình biên dịch InSter: Phụ thuộc được đặt bằng các phương pháp đặt đặt đặt sau khi tạo đối tượng.
  • Interface Ingration:) Phụ thuộc được cung cấp qua các phương pháp giao diện.

Gương của việc tập luyện theo thói quen

Hãy xem một ví dụ đơn giản nơi mà DataService ) phụ thuộc vào ) ) cơ sở .

class DatabaseConnection {
 public function connect() {
 // Connection logic
 }
}

class DatabaseService {
 private $connection;

 public function __construct(DatabaseConnection $connection) {
 $this->connection = $connection;
 }

 public function fetchData() {
 $this->connection->connect();
 // Fetch data logic
 }
}

// Injecting dependency
$connection = new DatabaseConnection();
$service = new DatabaseService($connection);

Trong khi thử nghiệm, bạn có thể thay thế maseConnection với một đối tượng giả để cô lập ) ) DataService từ các thao tác thực tế.

Kết luận

Dùng mô hình nạp phụ thuộc làm tăng khả năng kiểm tra của các mô- đun phần mềm bằng cách tách chúng khỏi các phụ thuộc của chúng. Thực hành này dẫn đến các mã bảo trì, linh hoạt và mạnh hơn, đặc biệt trong các ứng dụng phức tạp.