Khái niệm về nguyên lý lập trình Inversion of control (IoC) và các mô hình triển khai từ IoC như Service Locator, Dependency Injection

Đang xem: Inversion of control là gì

*

Inversion of Control (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ủ thục truyền thống.

Hình bên là Class A ở hai trường hợp, áp dụng IoC và không. Lớp này nó làm việc phụ thuộc vào hai lớp Class B và Class C (B và C gọi là các dependency)

Ở mô hình không IoC, Class A khi cần chủ động tạo ra đối tượng lớp Class B và Class C (nó nắm quyền khởi tạo, đ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, Class C. Nó nhận được hai dependency này từ bên ngoài thông qua một cơ chế nào đó (như bằng setter, bằng tham số hàm tạo lớp A, bằng gán thuộc tính …)

*

Triển khai nguyên lý IoC thường thực hiện bởi các Framework theo từng loại ngôn ngữ lập trình, các mô hình lập trình (pattern) triển khai từ IoC như: Service Locator Events DI (Dependency Inject)

Mô hình Service Locator

Service Locator – Một mô hình triển khai nguyên lý IoC. Sử dụng mô hình này có nghĩa cần có cơ chế sao cho tất các các tiến trình (các đối tượng, dịch vụ …) được đưa vào quản lý bởi một trung tâm được gọi là Service Locator, từ trung tâm đăng ký (registry) này các lớp muốn sử dụng dịch vụ nào thì Locator sẽ cung cấp (khởi tạo nếu chưa, và trả về dịch vụ cho đối tượng sử dụng).

Mô hình Dependency Inject – DI

Dependency injection (DI) là một mô hình triển khai từ nguyên lý IoC, là một kỹ thuật trong lập trình trong đó một đối tượng cung cấp những phụ thuộc (dependency – là đối tượng, dịch vụ, chức năng) của đối tượng khác. Injection – Bơm vào (tiêm vào) ám chỉ một phụ thuộc (đối tượng, dịch vụ) đưa vào đối tượng để đối tượng sử dụng nó.

Tìm hiểu về DI – Dependency Injection – trong lập trình PHP

Xem thêm: Huyết Áp Tâm Thu Tâm Trương Là Gì ? Huyết Áp Tâm Thu Đơn Độc Có Nguy Hiểm Không?

Mục lục bài viết
Inversion of control (IoC)Service LocatorDependency Injection
ĐĂNG KÝ KÊNH, XEM CÁC VIDEO TRÊN honamphoto.com

*

Cấu trúc URI URN và URL Giao thức HTTP và cấu trúc cơ bản của HTTP Message Tìm hiểu mô hình Adapter Pattern trong lập trình DI – Dependency Injection trong PHP Unix timestamp chuyển đổi thời gian Unix Biểu thức chính quy RegExp AOP Lập trình hướng khía cạnh

Xem thêm:

Giới thiệuPrivacyTừ điển Anh – ViệtChạy SQLRegExpCubic-bezierUnix timestampKý tự HTMLcalories, chỉ số BMRchỉ số khối cơ thể BMITạo QR CodeLịch vạn niên Liên hệ RSS

Đây là blog cá nhân, tôi ghi chép và chia sẻ những gì tôi học được ở đây về kiến thức lập trình PHP, Java, JavaScript, Android, C# … và các kiến thức công nghệ khácDeveloped by honamphoto.com

Leave a Reply

Your email address will not be published. Required fields are marked *