装饰模式-撤销装饰
来源:互联网 发布:淘宝杂货铺好做吗 编辑:程序博客网 时间:2024/04/27 22:55
接Java 装饰模式(4.4)
装饰模式可以灵活地为基本对象添加功能,也可以撤销功能装饰。
假设需要撤销TSong装饰,则在IProfession中添加public abstract IProfession removeSongTalent();
IProfession的子类型给出实现:
Teacher: @Override public IProfession removeSongTalent() { return this; }TEnglish: @Override public IProfession removeSongTalent() { return new TEnglish(base.removeSongTalent());}TSong: @Override public IProfession removeSongTalent() { return base.removeSongTalent(); }
测试代码
IProfession p = (IProfession) God.create("Profession-decorator");//
p.say("类层次");
p = new TSong(
new TSong(
new TEnglish(
new TSong(
new TEnglish(p)))));
p.say("LSP");
p = p.removeSongTalent();
p.say("继承");
输出:
讲解[类层次]
讲解[E文(旋律(E文(旋律(旋律(LSP)))))]
讲解[E文(E文(继承))]
阅读全文
0 1
- 装饰模式-撤销装饰
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- Android防止重复点击打开多个页面
- 1.6 实战:自己编译JDK
- 教你轻松面对工作总结
- JavaScript中Null与Undefined的区别
- mysqldump 导出表结构及表数据
- 装饰模式-撤销装饰
- 使用CodeWarrior调试U-Boot
- eclipse 代码迁移到studio上的打包注意情况
- python 将base64字符串还原成图片保存
- Spark运行在EMR Jar包(guava)冲突问题
- Xcode添加头文件路径和链接库文件
- SVN服务器搭建和使用(二)
- enum构造方法解析
- sklearn中的线性回归