Avatar
1
Vo Thanh Vuong Beginner
Vo Thanh Vuong Beginner
IOC và Dependency Injection
Anh có thể giải thích 2 khái niệm này chi tiết và cho e 1 code ví dụ cụ thể được không ạ?
  • Answer
ioc di
Remain: 5
1 Answer
Avatar
monkey Beginner
monkey Beginner
  1. IoC (inversion of control): theo tư duy thông thường thì chương trình của em khi tạo ra thì sẽ sử dụng thư viện đúng không nào? Như vậy thì đây là điểu khiển xuôi. Nhưng bây giờ đây thì ngược lại, ví dụ như spring boot, hay ezyfox chẳng hạn, nó là thư viện nhưng nó lại điều khiển chương trình của em. Nghĩa là các thành phần như service, controller, repo do em tạo ra phải tuân thủ theo nguyên tắc mà spring hay ezyfox đưa ra còn sau đó việc khởi tạo thế nào, điều khiển ra sao thì do do spring hay ezyfox, còn ứng dụng của em chỉ sử dụng thôi. Như vậy em đã thấy sự ngược chưa?

  1. Để đạt được IoC thì cần phải sử dụng đến Dependency Injection. Bởi vì nếu theo chiều xuôi thì khi em khởi tạo đối tượng ở chương trình của mình, thì em sẽ chủ động gọi hàm set cho các đối tượng có liên quan. Nhưng giờ lại ngược, thì các framework mới là những người chủ động đi tìm kiếm các phụ thuộc (các lớp có liên quan đến nhau) để khởi tạo và set thay cho em. Đó chính là ý nghĩa của Dependency Injection.
  • 1
  • Reply