Program to Interface (Tập trung vào trừu tượng)
Lập trình tập trung vào GIAO DIỆN (interface), chứ không phải TRIỂN KHAI (implementation). Phụ thuộc vào trừu tượng, chứ không phải sự cụ thể.
Ví dụ đời thực: chiếc đèn nhà vệ sinh
Đèn hỏng → ra cửa hàng mua chiếc đèn “tương tự” (= triển khai cùng một giao diện kết nối - interface) và thay thế. Nếu đèn bị ràng buộc chặt chẽ vào hệ thống điện, bạn phải thay cả hệ thống điện - ác mộng thật sự.
Nguyên tắc này đảm bảo 2 yếu tố
- Tính linh hoạt và mở rộng mà không phá vỡ code đã có - thiết kế hệ thống điện và cái đèn giao tiếp lỏng lẻo qua “chiếc ổ cắm” (interface). Miễn là đèn implement interface này, nó dùng được bình thường.
- Khả năng tái sử dụng code - vì không phụ thuộc chặt, các thành phần đem đi tái sử dụng ở nhiều nơi được.
Liên quan
- Abstraction - Trừu tượng - trụ cột OOP đứng sau nguyên tắc này
- Dependency Inversion Principle - phiên bản “chính quy” trong SOLID
- Dependency Injection - cách hiện thực (bóng đèn - đui đèn)
- Composition over Inheritance - nguyên tắc thiết kế anh em
- Adapter Pattern - cầu nối khi 2 interface không khớp