LINUX.ORG.RU

История изменений

Исправление Nervous, (текущая версия) :

А как ты собрался отличать родителя от особых подклассов?

Зачем мне это делать? С точки зрения вызывающего кода не должно быть никакой разницы, родителя ты передал или потомка. Если ожидается ПлоскаяФигура, можно передать туда ПлоскаяФигура, его потомка Треугольник или потомка потомка РавнобедренныйТреугольник, и наличие лишних методов не должно ничего сломать — потому что вызывающий код может рассчитывать только на методы ПлоскаяФигура, которые у всех его потомков 1) должны быть и 2) должны делать the right thing.

Насколько я понимаю, LSP касается пункта 2.

Исправление Nervous, :

А как ты собрался отличать родителя от особых подклассов?

Зачем мне это делать? С точки зрения вызывающего кода не должно быть никакой разницы, родителя ты передал или потомка. Если ожидается ПлоскаяФигура, можно передать туда ПлоскаяФигура, его потомка Треугольник или потомка потомка РавнобедренныйТреугольник, и наличие лишних методов не должно ничего сломать — потому что вызывающий код может рассчитывать только на методы ПлоскаяФигура, которые у всех его потомков 1) должны быть и 2) должны делать the right thing.

Исходная версия Nervous, :

А как ты собрался отличать родителя от особых подклассов?

Зачем мне это делать? С точки зрения вызывающего кода не должно быть никакой разницы, родителя ты передал или потомка. Если ожидается ПлоскаяФигура, можно передать туда ПлоскаяФигура, его потомка Треугольник или потомка потомка РавнобедренныйТреугольник, и наличие лишних методов не должно ничего сломать — потому что вызывающий код может рассчитывать только на методы ПлоскаяФигура.