Показать сообщение отдельно
  #1 (permalink)  
Старый 29.05.2019, 22:47
Кандидат Javascript-наук
Отправить личное сообщение для zlodiak Посмотреть профиль Найти все сообщения от zlodiak
 
Регистрация: 24.02.2012
Сообщений: 104

можно ли нарушать принцип подстановки Лисков?
помогите пожалуйста разобраться

есть код, в котором классы-потребители Customer и FatCustomer связаны наследованием. Этот код не нарушает принцип подстановки барбары лисков: https://jsfiddle.net/zlodiak/xptgj9dq/

а есть такой код, в котором классы-потребители не связаны наследованием. он тоже соответствует принципу подстановки барбары лисков: https://jsfiddle.net/zlodiak/7wgejos3/

если во втором примере я сделаю так чтобы Batman съедал 3 пиццы вместо одной, то код перестанет соответствовать принципу подстановки барбары лисков:
class Batman {
    .....
    ...

    eat() {
        this.storage.minus(3);
    }

    ....
    ........
}


в этом случае код станет плохим потому что не соответствует принципу лисков? но если мне именно это и нужно было - чтобы Batman съедал 3 пиццы. получается, что я в этом случае пишу некачественный код?

в связи с этим мне непонятна область применения принципа. ведь невозможно же его всё время соблюдать. зачем же он тогда нужен вообще?
Ответить с цитированием