发表时间:2022-03-26来源:网络
1.什么是装饰者模式?
概念:又名包装模式。动态给一个对象添加一些额外的职责。
若要扩展功能,装饰者提供了比继承更加有弹性的替代方案。
2.装饰者模式的使用场景
2.1 以动态的方式给对象添加职责
2.2 处理那些可以撤销的职责
2.3 当采用生成子类的方法进行扩充时,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长
这里举一个例子,我们常见而且周董特别爱喝的奶茶,当然奶茶有多种口味,红豆,椰香,珍珠等等。。。

如图中一样,奶茶是由一种主料和五种辅料组合搭配而成,这个它们一一搭配的关系,同样也可以两两或者三三搭配,依次下来就会有很多种搭配可能。从开发角度来说,就相当于继承,每个奶茶品种可以看成一个子类。我们都知道子类的作用,子类是对父类方法的一个增强,子类拥有比父类更为强大的方法。把这种场景放到开发中会出现一种现象,每新增加一种辅料最后都会新增一个子类,最后就形成了类爆炸?,继承虽然可以增强父类的功能但是子类会越来越多,代码会显的特别臃肿。
3.为什么要使用装饰者模式
由上图场景中总结,这里我们看到如果使用子类继承父类,那么我们要写很对子类,这么做无疑增加了程序的臃肿性,并不是很灵活,这时,装饰者模式就诞生了。
4.装饰者模式的结构
抽象组件(Component):给出一个抽象接口,以规范准备接收附件责任的对象被修饰者(ConcreteComponent):Component的具体实现,也就是我们要装饰的具体对象(相当于上图中的奶茶)装饰者组件(Decorator): 也可以说是装饰器,持有组件对象的实例引用,该类的职责就是为了装饰具体组件对象,定义的基类具体装饰(ConcreteDecorator):负责给构建对象装饰附件功能结构图结合案例

前面理论,接下来代码实践
开发工具sts 运行环境Tomcat7.0

Drink.java

Decorator.java

MilkTea.java
Gem.java
RedBean.java
TestMain.java
测试方法
结果
代码只是一个结合装饰者模式编写的一个案例,对应着看方便理解,具体实现根据自己的项目需求而定,不当之处请指出。
上一篇:Java代码混淆
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26