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 ạ?
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
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?
2. Để đạ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.