理解
可以实现继承,可以更有弹性的实现继承。但是会造成有大量的装饰造成很多小类,导致类有点多。
demo
/**
* 主类
*/
@Data
public abstract class Bread {
private String describe;
abstract public void cost();
}
/**
* 主类实现
*/
public class Cake extends Bread{
@Override
public void cost() {
setDescribe("我是蛋糕");
System.out.println("描述"+getDescribe());
}
}/**
* 装饰类
*/
public class DecorateA extends Bread {
private Bread bread;
public DecorateA(Bread bread){
this.bread=bread;
}
@Override
public void cost() {
bread.cost();
System.out.println("加入装饰");
}
}
@Test
public void client(){
Bread bread=new Cake();
Bread decorate=new DecorateA(bread);
decorate.cost();
}