装饰器模式

装饰模式又可称为包装器(装饰模式比生成子类实现更为灵活)

装饰模式:允许在一个现有类的基础上添加新的功能,同时又不改变其框架结构。

装饰类就是一种包装,打扮原有的类,并在保持原有类结构的基础上,添加一些新的功能。

动态地给一个对象添加一些额外的职责。

在不想增加很多子类的情况下扩展类的功能。

装饰模式的结构:1、抽象组件:定义了需要进行装饰的方法

                              2、具体组件:是抽象组件的一个子类

                              3、装饰:装饰具体组件

                               4、具体装饰:是装饰组件的非抽象子类

优点:装饰类和被装饰类可以独立发展,不会相互耦合。

          装饰模式时继承的一个替代模式

          可以使用多个装饰来装饰具体组件的实例。

缺点:装饰模式比继承灵活,同样比继承更容易出错。

适用场景:程序希望动态地增强类的某个对象的功能,而又不影响到该类的其他对象

                  采用继承来增强对象功能不利于系统的扩展和维护

                  需要给一个对象动态的增加功能,也可撤销功能

 

posted @ 2019-03-25 22:56  繁春  阅读(73)  评论(0编辑  收藏  举报