Trong bài toán Design Parttern mang lại OOP bạn ta bàn về sự việc thi công một pattern làm sao để lớp bé thừa kế lớp phụ vương nhưng từ loại trừ mọi method nhưng mà nó không muốn. Điều kia tức là lớp bé ko vâng lệnh nguim tắc định trước, tức là nó không tuân hành một giữa những hình thức cơ bản của kiến tạo phía đối tượng người tiêu dùng (OOD – Object oriented design) là Liscov substitution principle.

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


Điều đó cho thấy khi xây đắp, tìm phương án cho một vấn đề nào kia, vấn đề nắm rõ các nguyên ổn lí cơ bản của OOD là vô cùng quan trọng đặc biệt. Bài này xin trình làng về 5 nguyên tắc cơ bản của OOD là:

Open closedLiskov substitutionDependency inversionInterface segregationSingle responsibility

mở cửa closed

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

Liskov substitution

Nguim lí này được phát biểu nhỏng sau:


FUNCTIONS THAT USE POINTERS OR REFERENCES TO BASE CLASSES MUST BE ABLE TO USE OBJECTS OF DERIVED CLASSES WITHOUT KNOWING IT.
Tức là hoạt động của những function tất cả thực hiện reference tuyệt pointer tới object của lớp cha cần được bảo đảm là không biến thành ảnh hưởng lúc sửa chữa thay thế reference hay pointer tới object của lớp phụ vương do reference tốt pointer tới object của lớp nhỏ với function đó ko nên biết về sự lâu dài của lớp con. Khi kia, những virtual thành viên functions làm việc lớp cha cũng yêu cầu gồm nghỉ ngơi lớp con, và yêu cầu thực hiện một công việc gồm nghĩa. Nếu nguyên lí này bị vi phạm luật, function có thực hiện reference xuất xắc pointer cho tới object của lớp cha cần kiểm tra kiểu của object nhằm bảo vệ chương trình hoàn toàn có thể chạy đúng, cùng bài toán này phạm luật ngulặng lí open-closed nói trên. Ttê mê khảo thêm ở đây và tại chỗ này.

Dependency inversion

Việc vận dụng hai nguyên lí open-closed với Liskov substitute một biện pháp nghiêm ngặt rất có thể tổng quát biến thành nguyên lí depndency inversion được phát biểu nlỗi sau:

HIGH LEVEL MODULES SHOULD NOT DEPEND UPON LOW LEVEL MODULES. BOTH SHOULD DEPEND UPON ABSTRACTIONS.
ABSTRACTIONS SHOULD NOT DEPEND UPON DETAILS. DETAILS SHOULD DEPEND UPON ABSTRACTION.

Xem thêm: " Serendipity Là Gì ? Tám Từ Kỳ Diệu Làm Thay Đổi Thế Giới

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


*
Tsay mê khảo thêm ở trong phần này, khu vực tê cùng khu vực đó.

Interface segregation

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


khi một client bị nghiền cần phụ thuộc vào đầy đủ interface cơ mà nó không áp dụng thì nó sẽ bị phụ thuộc vào phần đông thay đổi của interface đó. Chúng ta rất cần được tách vấn đề đó các độc nhất hoàn toàn có thể bằng phương pháp phân tách nhỏ tuổi interface. Tham khảo thêm tại chỗ này.

Single responsibility

Ngulặng lí này được tuyên bố nlỗi sau:


Tmê mẩn khảo thêm tại đây với tại đây.

Xem thêm: Hướng Dẫn Sử Dụng Win Pe Là Gì Và Nó Hoạt Động Như Thế Nào? Phân Tích Windows Pe Là Gì

Crúc ý: để gọi bài này, cần phải có kiến thức và kỹ năng cơ phiên bản về thiết kế phía đối tượng người tiêu dùng, nhất là các khái niệm encapsulation, inheritance, polimorphism.

Chuyên mục: Ý NGHĨA
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *