У меня проблемы с согласованием примера прохождения во вступлении к главе «Шаблоны проектирования». Я скопировал несколько изображений утверждения, решения и очевидных противоречий главы.
Проблема: Джо ругал за то, что на его симуляторе летали резиновые утки. В конце концов он предлагает "Как насчет интерфейса?" Там MallordDuck (и другие) объявляются как дети класса Duck и реализуют один или несколько интерфейсов.
За что его снова ругают леди-супервайзер, который спрашивает: «Как вы будете себя чувствовать, когда вам нужно изменить поведение летного на всех 48 уток?» В тексте справа от супервизора утверждается, что он полностью уничтожает повторное использование кода для такого поведения
А в программировании для решения интерфейса UML-иллюстрация кажется, требует того же количества дубликата кода, за который Джо ругал. Кажется, это не решает эту проблему. Единственный способ, которым я могу придумать, - это поместить в интерфейс наиболее используемые реализации для fly () и Quack () (что невозможно в Java - я думаю), и это может быть чем-то, что вы не делаете хочу сделать, даже если бы это было возможно. Кроме того, кажется, что они также скрыты за интерфейсом ...
Ну, я либо слишком много обдумал, либо просто не Не понимаю утверждений о дублировании кода и «эти поведения больше не скрыты в наших классах Duck»
Любые разъяснения или дальнейшие объяснения очень приветствуются.
спасибо, Киал