Thứ Sáu, 4 tháng 1, 2013

Nguyên lý Thay thế của Liskov

1. Định nghĩa

Nguyên lý Thay thế của Liskov phát biểu như sau:

Các function kế thừa từ lớp cha phải được thay thế hoàn toàn bởi các function tương ứng ở lớp cha.

2. Giải thích

Giả sử tổ chức có nhiều hệ thống con, mỗi hệ thống có một quy trình riêng. Phòng IT được giao nhiệm vụ vận hành tất cả các hệ thống, khi đó phòng IT cũng sẽ có quy trình để làm việc này.

Giả sử A là nhân viên phụ trách quy trình vận hành hệ thống (HT), thứ tự vận hành hệ thống như sau:
1. Khởi động HT1
2. Sau khi hoàn tất khởi động HT 1, khởi động HT2 (HT2 lấy kết quả của HT1 để thực thi)
3. Sau khi hoàn tất khởi động HT 2, khởi động HT3 (HT3 lấy kết quả của HT2để thực thi)

Vào một ngày nọ, A bị bệnh phải nghỉ phép, B được giao thay thế A để vận hành hệ thống,

NHƯNG

B lại vận hành như sau:
1. Khởi động HT2
2. Khởi động HT3
3. Khởi động HT1

và kết quả là hệ thống gặp trục trặc không thể khởi động được

Trong trường hợp này, chúng ta có thể thấy khi kế thừa quy trình từ nhân viên A, nhân viên B đã không theo đúng các logic vận hành đã được định sẵn mà lại tự ý hay vô tình làm sai dẫn đến kết quả thực hiện không mong muốn.

Nguyên lý Thay thế của Liskov nhằm bảo đảm logic được thực hiện ở lớp cha được toàn vẹn khi lớp con kế thừa những function của lớp cha.

Nếu lớp con có nhu cầu thay đổi thì function ở lớp cha sẽ được khai báo abstract (trừu tượng)

3. Ví dụ


Không có nhận xét nào:

Đăng nhận xét