请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

装饰者模式的动态撤销功能的实现

geely老师,装饰者模式的适用场景中提到动态撤销功能,那是怎么实现的呢?
那些Decorator添加的职责,通过怎样的方式来撤销呢。明明都加到基本类上了。

正在回答

2回答

geelylucky 2019-06-14 16:14:34

同学,咱们可以提供一个撤销的方法

public void revoke(){

    //撤销到上一次的aBattercake

    this.aBattercake = this.aBattercake.getABattercake();

}

好好理解一下这个方法,逻辑有点绕。

1 回复 有任何疑惑可以回复我~
提问者 血夜之末 2019-06-14 17:11:51

非常感谢。这个方法倒是之前没想到的。谢谢了。
那这样是不是只能按添加职责的顺序的倒序来撤销职责。
因为这样的方法返回的上一层的ABattercake()。
有没有比较简单的办法来撤销目标职责。

0 回复 有任何疑惑可以回复我~
  • 要看具体的业务,你怎么确定业务不是需要这样倒序的呢?如果是需要顺序的,就要改改数据结构,或者做成随机的。。。看情况吧。
    回复 有任何疑惑可以回复我~ 2019-06-20 15:42:56
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信