Inversion of
Control (Đảo ngược điều khiển)
Inversion of Control (IoC) có thể được hiểu
là một nguyên lý thiết kế trong công nghệ phần mềm. Kiến trúc phần mềm được được
áp dụng thiết kế này sẽ đảo ngược quyền điều khiển so với kiểu lập trình hướng
thủ tục. Trong lập trình hướng thủ tục, các đoạn mã được thêm vào sẽ gọi các
thư viện nhưng với IoC thì những IoC container sẽ sẽ chích những dependencies
vào khi nó khởi tạo bean.
IoC là một nguyên lý thiết kế trong công nghệ phần mềm trong đó các thành
phần nó dựa vào để làm việc bị đảo ngược quyền điều khiển khi so sánh với lập
trình hướng thủ tục truyền thống.
Hình dưới là Class A ở hai trường hợp, áp dụng IoC và không. Lớp A làm việc
phụ thuộc vào hai lớp Class B và Class C (Lớp B và C được gọi là các
dependency)
Ở mô hình không IoC, lớp A khi cần chủ động tạo ra đối tượng lớp B và lớp
C (Lớp A nắm quyền khởi tạo và điều khiển).
Với mô hình IoC thì class A không tự khởi tạo cũng không chịu trách nhiệm
quản lý Class B và Class C. Nó nhận được 2 dependency này từ bên ngoài thông
quan một cơ chế như setter, tham số hàm tạo lớp A/B, gán thuộc tính.
IoC như một hướng dẫn thiết kế phục vụ các mục đích sau:
- Tách rời việc thực hiện một tác vụ nhất định từ sự thực thi.
- Mỗi mô-đun có thể tập trung vào những gì nó được thiết kế.
- Các mô-đun không đưa ra giả định về những gì các hệ thống
khác làm mà chỉ dựa vào contract của chúng.
- Thay thế các mô-đun không bị ảnh hưởng trên các mô-đun khác.
إرسال تعليق