一、引入
当我们想要扩展类的功能的时候,很多情况下会考虑用继承的方法,比如我们的以前的手机类,只支持打电话,发短信,如果我们想要扩展手机的功能,让普通的手机变成智能手机,那最简单的方式就是新建一个智能手机类并继承手机类,扩充智能手机拥有的新功能,比如打游戏,上网。
但是子类继承的方法总归不是非常灵活啊,为了更好的解决类功能扩展的问题,我们来引用今天要学习的新模式——装饰模式。首先先看一下标准定义。
装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活。
从这个定义中可以找到几个要点:
1.动态的扩展
2.不会改变原有类
3.不用生成子类的继承方式
在这个模式中主要有四个类
1.原始类接口(接口类型或者抽象类)