装饰者的动态撤销究竟要怎么实现?

来源:14-2 组合模式coding

洪小才

2020-07-09

老师能不能贴出全部的代码出来?!

写回答

1回答

geelylucky

2020-07-11


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();
   }
}

0
1
洪小才
非常感谢!谢谢老师不厌其烦的给我解答
2020-07-13
共1条回复

Java设计模式精讲-Debug方式+内存分析

系统学习设计原则,设计模式,锤炼编码内功,赢取高薪Offer

3438 学习 · 408 问题

查看课程