Bài đăng nổi bật

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:
  1. Tách rời việc thực hiện một tác vụ nhất định từ sự thực thi.
  2. Mỗi mô-đun có thể tập trung vào những gì nó được thiết kế.
  3. 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.
  4. Thay thế các mô-đun không bị ảnh hưởng trên các mô-đun khác.

Post a Comment

Mới hơn Cũ hơn