Tôi hiện đang cố gắng để tìm ra RẮN. Vì vậy, Nguyên tắc đảo ngược phụ thuộc có nghĩa là bất kỳ hai lớp nào cũng nên giao tiếp qua các giao diện, không trực tiếp. Ví dụ: Nếu class A
có một phương thức, mong muốn một con trỏ tới một đối tượng có kiểu class B
, thì phương thức này thực sự sẽ mong đợi một đối tượng có kiểu abstract base class of B
. Điều này cũng giúp cho Mở / Đóng.
Với điều kiện tôi hiểu điều đó một cách chính xác, câu hỏi của tôi sẽ là một cách thực hành tốt để áp dụng điều này cho tất cả các tương tác của lớp hay tôi nên thử suy nghĩ theo các lớp ?
Lý do tôi hoài nghi là vì chúng tôi đang trả một số giá cho việc tuân theo nguyên tắc này. Nói, tôi cần thực hiện tính năng Z
. Sau khi phân tích, tôi kết luận rằng tính năng Z
bao gồm các chức năng A
, B
và C
. Tôi tạo ra một mặt tiền lớp Z
, rằng, thông qua các giao diện, sử dụng các lớp học A
, B
và C
. Tôi bắt đầu mã hóa việc thực hiện và đến một lúc nào đó tôi nhận ra rằng nhiệm vụ Z
thực sự bao gồm chức năng A
, B
và D
. Bây giờ tôi cần loại bỏ C
giao diện, C
nguyên mẫu lớp và viết D
giao diện và lớp riêng biệt . Không có giao diện, chỉ có lớp sẽ cần phải được thay thế.
Nói cách khác, để thay đổi một cái gì đó, tôi cần thay đổi 1. người gọi 2. giao diện 3. khai báo 4. việc thực hiện. Trong một con trăn cùng trực tiếp thực hiện, tôi sẽ cần phải thay đổi chỉ thực hiện.