特点
-
原接口Shape不动,增加新的装饰类ShapeDecorator
-
原方法名不变,只是增加或修饰此方法体
-
ColorShapeDecorator装饰类持有原对象,只是增加了修饰
public class ColorShapeDecorator extends ShapeDecorator {
public ColorShapeDecorator(Shape shape) { super(shape); } @Override public void draw() { setColor(); shape.draw(); } private void setColor() { //设置画图颜色 }}
源代码
gitee.com