2. có thể mở rộng 1 class, nhưng ko đc sửa trong class đó?
-> khi thêm chức năng mới, ta nên viết class mới, kế thừa,
mở rộng chức năng từ class cũ chứ ko nên sửa class cũ.
3. trong 1 chương trình, các object của class con có thể
thay đổi class cha mà ko làm thay đổi tính đúng đắn của chương trình
ex: class cha: Vịt
class con: vịt bầu + vịt xiêm
giờ viết thêm class vit chạy pin
vì class cha ko có pin nên gây lỗi
-> vi phạm quy tắc này
4. thay vì dùng 1 interface lớn, ta nên tách thành nhiều interface nhỏ
với nhiều mục đích cụ thể
ex. 1 interface có 100 method...
khi kế thừa, có thể 1 số class ko cần một số method (trong 100 method đó)
-> nên tách ra.
5. các module cấp cao ko nên phụ thuộc vào module cấp thấp
-> cả 2 nên phụ thuộc vào abstraction
Interface ko nên phụ thuộc vào chi tiết và ngược lại (các class giao tiếp
với nhau thông qua interface chứ ko nên qua implemention)
ex: đèn tròn và đèn huỳnh quang -> đều có đuôi tròn
khi lắp thì ổ điện chỉ quan tâm đuôi tròn (interface)
mà ko quan tâm implement của nó (đền tròn và đèn huỳnh quang)
0 nhận xét:
Đăng nhận xét