История изменений
Исправление dimgel, (текущая версия) :
Вот это и есть нарушение LSP, т.е. дичь.
Интерфейс может быть так спроектирован что часть методов базового класса у потомков априори невалидны и кидают исключение.
Вернее, если в описании интерфейса прямо сказано, что метод подкласса может бросать исключение, то это не нарушение LSP, т.к. подкласс по-прежнему удовлетворяет протоколу базового класса/интерфейса. Но в этом случае следующее замечание неуместно:
А дальше как рантайм повернется…
А если LSP нарушен, т.е. метод «пописать» в подклассе отрабатывает как «покакать», то это извините не ООП, а говно собачье. Т.е. говнокод, некорректно использующий ООП-фичи языка. А потом появляются приколы про игры, в которых овечки стреляют из РПГ, потому что в чью-то светлую голову пришла мысль отнаследовать их от бойцов, лишь бы быстрее доделать.
Исправление dimgel, :
Вот это и есть нарушение LSP, т.е. дичь.
Интерфейс может быть так спроектирован что часть методов базового класса у потомков априори невалидны и кидают исключение.
Вернее, если в описании интерфейса прямо сказано, что метод подкласса может бросать исключение, то это не нарушение LSP, т.к. подкласс по-прежнему удовлетворяет протоколу базового класса/интерфейса. Но в этом случае следующее замечание неуместно:
А дальше как рантайм повернется…
А если LSP нарушен, т.е. метод «пописать» в подклассе отрабатывает как «покакать», то это извините не ООП, а говно собачье. Т.е. говнокод, некорректно использующий ООП-фичи языка. А потом появляются приколы про игры, в которых овечки стреляют из РПГ, потому что в чью-то светлую голову пришла мысль отнаследовать их от бойцов.
Исправление dimgel, :
Вот это и есть нарушение LSP, т.е. дичь.
Интерфейс может быть так спроектирован что часть методов базового класса у потомков априори невалидны и кидают исключение.
Вернее, если в описании интерфейса прямо сказано, что метод подкласса может бросать исключение, то это не нарушение LSP, т.к. подкласс по-прежнему удовлетворяет протоколу базового класса/интерфейса. Но в этом случае следующее замечание неуместно:
А дальше как рантайм повернется…
А если LSP нарушен, т.е. метод «пописать» в подклассе отрабатывает как «покакать», то это извините не ООП, а говно собачье. Т.е. говнокод, некорректно использующий ООП-фичи языка.
Исправление dimgel, :
Вот это и есть нарушение LSP, т.е. дичь.
Интерфейс может быть так спроектирован что часть методов базового класса у потомков априори невалидны и кидают исключение.
Вернее, если в описании интерфейса прямо сказано, что метод подкласса может бросать исключение, то это не нарушение LSP, т.к. подкласс по-прежнему удовлетворяет протоколу базового класса/интерфейса. Но в этом случае следующее замечание неуместно:
А дальше как рантайм повернется…
Исходная версия dimgel, :
Вот это и есть нарушение LSP, т.е. дичь.