Ood là gì
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 responsibilityOpen 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.