Ood Là Gì

  -  
Trong câu hỏi Design Parttern đến OOPhường bạn ta bàn về sự việc xây cất một pattern làm sao nhằm lớp bé kế thừa lớp thân phụ tuy thế từ bỏ vứt bỏ hồ hết method nhưng nó không muốn. Điều kia tức là lớp nhỏ ko tuân thủ nguyên tắc định trước, Tức là nó không vâng lệnh một Một trong những phép tắc cơ bản của thi công phía đối tượng (OOD – Object oriented design) là Liscov substitution principle.

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

Quý Khách sẽ xem: Ood là gì

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

Liskov substitution

Ngulặng lí này được phát biểu như 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 vui chơi của những function tất cả áp dụng reference giỏi pointer cho tới object của lớp phụ thân rất cần được bảo vệ là không trở nên ảnh hưởng lúc thay thế sửa chữa reference giỏi pointer tới object của lớp thân phụ vày reference hay pointer tới object của lớp nhỏ cùng function đó không cần phải biết về sự việc tồn tại của lớp bé. Khi kia, những virtual member functions làm việc lớp cha cũng đề nghị tất cả sinh sống lớp nhỏ, và bắt buộc tiến hành một quá trình tất cả nghĩa. Nếu nguyên lí này bị phạm luật, function bao gồm áp dụng reference tốt pointer cho tới object của lớp phụ thân đề nghị kiểm soát loại của object để bảo đảm an toàn chương trình hoàn toàn có thể chạy đúng, với câu hỏi này vi phạm luật nguyên lí open-closed nhắc tới ở bên trên. Tmê man khảo thêm ở chỗ này với tại chỗ này.

Dependency inversion

Việc vận dụng hai nguyên lí open-closed và Liskov substitute một cách ngặt nghèo rất có thể tổng quát trở thành nguyên ổn lí depndency inversion được tuyên bố nlỗi sau:

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

Xem thêm: 2020: Nên Gửi Tiết Kiệm Ngân Hàng Nào Lãi Suất Cao, Ổn Định, An Toàn Nhất? ?

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

Thực hiện nay một bằng phương pháp cần sử dụng abstract layer như hình dưới.


*

Tham khảo thêm ở chỗ này, chỗ cơ và chỗ kia.

Interface segregation

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

lúc một client bị ép bắt buộc nhờ vào vào hồ hết interface mà nó không áp dụng thì nó sẽ bị chịu ràng buộc vào đông đảo chuyển đổi của interface kia. Chúng ta rất cần phải tránh điều đó những tuyệt nhất rất có thể bằng cách phân tách nhỏ interface. Tmê mẩn khảo thêm tại chỗ này.

Xem thêm: Ứng Dụng Etl Là Gì ? Etl Và Elt: Những Sự Khác Biệt Cần Phải Biết

Single responsibility

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

Tham khảo thêm tại đây cùng ở chỗ này. Chú ý
: để đọc bài bác này, cần có kỹ năng cơ bản về thiết kế hướng đối tượng, tốt nhất là những tư tưởng encapsulation, inheritance, polimorphism.