Ood là gì

     
Trong vấn đề Design Parttern đến OOP fan ta bàn về vấn đề xây đắp một pattern làm thế nào để lớp con thừa kế lớp phụ vương nhưng tự loại bỏ những method nhưng mà nó không ao ước muốn. Điều đó tức là lớp bé không tuân thủ nguyên tắc định trước, có nghĩa là nó ko tuân thủ trong những nguyên tắc cơ phiên bản của xây dựng hướng đối tượng (OOD – Object oriented design) là Liscov substitution principle.

Bạn đang xem: Ood là gì

Bạn sẽ xem: định nghĩa Về Ood Là Gì ? Ood Là Gì

Điều đó cho thấy thêm khi thiết kế, tìm chiến thuật cho một sự việc nào đó, câu hỏi nắm rõ những nguyên lí cơ bạn dạng của OOD là khôn cùng quan trọng. Bài bác này xin trình làng về 5 bề ngoài cơ bạn dạng của OOD là:

Open closedLiskov substitutionDependency inversionInterface segregationSingle responsibility

Open closed

Ivar Jacobson từng nói: “Để xây cất các khối hệ thống lâu dài, cần luôn tâm niệm rằng các khối hệ thống luôn chuyển đổi trong quá trình sử dụng”. (All systems change during their life cycles. This must be borne in mind when developing systems expected lớn last longer than the first version.”). Năm 1988, Bertrand Meyer gửi ra phương châm để tiến hành điều nhưng Ivar Jacobson nói bên trên mà sau đây trở thành nguyên lí open-closed nổi tiếng. Đó là: SOFTWARE ENTITIES (CLASSES, MODULES, FUNCTIONS, ETC.) SHOULD BE xuất hiện FOR EXTENSION, BUT CLOSED FOR MODIFICATION. những chương trình áp dụng nguyên lí open-close được núm đổi bằng cách thêm code new chứ chưa hẳn sửa code bao gồm sẵn. Bằng cách này, né được chuyển đổi dây chuyền trong tổng thể chương trình. Mặc dù nhiên, từng entity của chương trình rất có thể đóng với thay đổi này nhưng lại không đóng góp với chuyển đổi nào kia khác. Do đó, tính đóng góp này chỉ là tương đối và trọng trách của người xây dựng là với mỗi đặc điểm của chương trình, ưu tiên đóng các thuộc tính dễ chuyển đổi nhất. Để “đóng” các entity của chương trình, hoàn toàn có thể sử dụng chiến thuật abstraction, data driven, .. Open-closed là nguyên li trung tâm, rất đặc biệt trong kiến thiết hướng đối tượng vì chủ yếu nguyên lí này tạo nên lập trình hướng đối tượng người sử dụng có tính tái áp dụng (reusability) và dễ bảo trì (maintainability). Tham khảo thêm ở đây và ở đây.

Liskov substitution

Nguyên lí này được tuyên bố như sau:

FUNCTIONS THAT USE POINTERS OR REFERENCES khổng lồ BASE CLASSES MUST BE ABLE to USE OBJECTS OF DERIVED CLASSES WITHOUT KNOWING IT. Tức là hoạt động vui chơi của các function có thực hiện reference tuyệt pointer cho tới object của lớp thân phụ cần được bảo đảm an toàn là không bị ảnh hưởng khi sửa chữa thay thế reference giỏi pointer cho tới object của lớp thân phụ bởi reference tuyệt pointer cho tới object của lớp nhỏ và function đó không cần phải biết về sự vĩnh cửu của lớp con. Lúc đó, những virtual thành viên functions sống lớp phụ vương cũng phải bao gồm ở lớp con, với phải thực hiện một quá trình có nghĩa. Giả dụ nguyên lí này bị vi phạm, function có áp dụng reference tốt pointer tới object của lớp phụ thân phải kiểm tra kiểu của object để đảm bảo an toàn chương trình có thể chạy đúng, và vấn đề này vi phạm luật nguyên lí open-closed nhắc tới ở trên. Tham khảo thêm ở đây với ở đây.

Dependency inversion

Việc áp dụng hai nguyên lí open-closed cùng Liskov substitute một cách chặt chẽ có thể tổng quát hóa thành nguyên lí depndency inversion được phát biểu như sau:

HIGH level MODULES SHOULD NOT DEPEND UPON LOW màn chơi MODULES. BOTH SHOULD DEPEND UPON ABSTRACTIONS.

Xem thêm: Top 19 Cách Chặn Truy Cập Danh Bạ Trên Iphone, Please Wait

ABSTRACTIONS SHOULD NOT DEPEND UPON DETAILS. DETAILS SHOULD DEPEND UPON ABSTRACTION.

Thực hiện nay một bằng cách dùng abstract layer như hình dưới.


*

đọc thêm ở khu vực này, địa điểm kia và chỗ đó.

Interface segregation

Nguyên lí này được tuyên bố như sau:

Khi một client bị xay phải phụ thuộc vào vào mọi interface mà nó không sử dụng thì nó vẫn bị phụ thuộc vào những thay đổi của interface đó. Chúng ta cần phải tránh vấn đề này nhiều nhất gồm thể bằng cách chia nhỏ tuổi interface. Tham khảo thêm ở đây.

Xem thêm: Nghĩa Của Từ Up Là Gì ? Có Phải Build Up Là Cụm Động Từ Không

Single responsibility

Nguyên lí này được tuyên bố như sau:

Tham khảo thêm ở đây và sinh hoạt đây. Chú ý
: để hiểu bài xích này, cần có kiến thức cơ phiên bản về lập trình phía đối tượng, duy nhất là những khái niệm encapsulation, inheritance, polimorphism.