Мне нужна помощь в понимании этого примера для декоратора:
package design.decorator;
public class FillColorDecorator extends ShapeDecorator {
protected Color color;
public FillColorDecorator(Shape decoratedShape, Color color) {
super(decoratedShape);
this.color = color;
}
@Override
public void draw() {
decoratedShape.draw();
System.out.println("Fill Color: " + color);
}
// no change in the functionality
// we can add in the functionality if we like. there is no restriction
// except we need to maintain the structure of the Shape APIs
@Override
public void resize() {
decoratedShape.resize();
}
@Override
public String description() {
return decoratedShape.description() + " filled with " + color + " color.";
}
// no change in the functionality
@Override
public boolean isHide() {
return decoratedShape.isHide();
}
}
Этот пример взят с этого сайта: https://dzone.com/articles/decorator-design-pattern-in-java
Я просто не понять, почему они пытаются реализовать методы с неизменным функционалом. Например:
return decoratedShape.isHide();
Зачем это нужно? Мне кажется, что удаление этого и не переопределение неизмененных методов будет хорошо работать.
Спасибо.