装饰者的动态撤销究竟要怎么实现?
来源:14-2 组合模式coding

洪小才
2020-07-09
老师能不能贴出全部的代码出来?!
1回答
-
public abstract class ABattercake {
private ABattercake aBattercake;
public ABattercake() {}
public ABattercake(ABattercake aBattercake) {
this.aBattercake = aBattercake;
}
protected abstract String getDesc();
protected abstract int cost();
public ABattercake getaBattercake() {
return this.aBattercake;
}
public void revoke() {
if (this.aBattercake != null) {
this.aBattercake = this.aBattercake.getaBattercake();
}
}
}
public class AbstractDecorator extends ABattercake {
public AbstractDecorator(ABattercake aBattercake) {
super(aBattercake);
}
@Override
protected String getDesc() {
return getaBattercake().getDesc();
}
@Override
protected int cost() {
return getaBattercake().cost();
}
}012020-07-13
相似问题