其他分享
首页 > 其他分享> > 设计模式之装饰者模式

设计模式之装饰者模式

作者:互联网

一、含义

动态地给一个对象添加一些额外的职责。就增加功能来说, Decorator模式相比生成子类更为灵活。装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。

分析含义:以前如果要扩展功能,一般都是使用继承基类,然后根据不同的特征进行拓展,这样做会使得代码不够灵活,因为继承是在运行之前就写好了的,当我们想要改变或者增加一些东西时,会直接改变类,这就破坏了开放与关闭原则,装饰者原则使用组合的思想,相对比继承只能纵向扩展,装饰者使得可以横向组合,装饰者和本身的组件从源头上都是继承同一个接口,这样就可以利用多态,使得类型达到相同,从而使得相互组合变得容易。

二、举例

应用场景:为咖啡店设计订单系统,使得满足不同饮料的需求。

策略评价:

        

 

 *******************************************************************************************

代码实现:

 

 

 

 

 

 

 

 ****************************************************************************************************************

测试类:

 

 不论装饰者里面包裹的是装饰者还是基本材料,始终最里面包裹的是一个基本材料类,基本材料类相当于递归的出口,最后返回一个数值。

 ****************************************************************************

拓展:对于策略二中,cost函数应该如何写?

 

 

书中这个代码不完善我目前的思路是可以考虑设置一个枚举,装TALL、GRANDE、VENTI,然后在基本的set函数中需要对size字段传入相应的0、1、2进行传值,再进行对比。

标签:函数,佐料,模式,饮料,调料,设计模式,装饰,策略
来源: https://www.cnblogs.com/Nicela/p/14966345.html