文章目录
-
- 装饰者模式
- 代码实现
- 为什么使用装饰者模式
装饰者模式
假如现在有一块蛋糕, 加上奶油就是奶油蛋糕。如果继续再加上草莓,就是草莓蛋糕,再加点蜡烛,就变成了生日蛋糕。不论是蛋糕、奶油蛋糕、草莓蛋糕还是生日蛋糕,它们的核心都是蛋糕。
像这样不断地为对象添加装饰的设计模式被称为Decorator模式。
这个添加的过程有点类似于套娃。就是一个很原始的对象,一直在它外层套东西,不断地装饰它。
代码实现
示例程序的功能是给文字添加装饰边框,这里所谓的装饰边框是指用”-“,”+“,”|”等字符组成的边框。
Component角色,抽象的”被装饰对象“,增加功能时的核心角色,比如定义了三个抽象方法,分别是获取字符串数组的列数,行数,以及输出第几行。还有一个默认方法是输出全部行
ConcreteComponent角色,具体的被装饰对象
Decorator(装饰物)角色,该角色具有与Component角色相同的接口(API),在它内部保存了被装饰对象——Component角色
ConcreteDecorator(具体的装饰物)
测试类
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!