0
点赞
收藏
分享

微信扫一扫

23种设计模式-创建型-装饰器模式

小布_cvg 2022-04-16 阅读 97

定义

        允许向一个现有的对象添加新的功能,同时又不改变其结构;

这种模式创建了一个装饰类,用来包装原有的类,并在保持类的完整性的前提下,提供了额外的功能;

        类似于AOP面向切面编程,装饰器模式也是一种AOP的实现;

有什么作用

        动态地给一个对象添加一些额外的职责。就新增功能来说,装饰器模式相比生成子类更灵活

主要解决问题

        通常我们为了扩展一个类习惯使用继承的方式来实现,优于继承为类引入静态特征,并且随着扩展功能的增多子类就越膨胀。

优点

        装饰类和被装饰类可以独立发展,不会互相耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。

缺点

        多层装饰比价复杂。

使用场景

        扩展一个类的功能;动态增加功能,动态撤销。

装饰器实现

        组合+继承、组合:属于横向,通过构造函数的方式;继承:属于纵向;

延伸

        AOP:AOP面向切面编程,解决对象语言的静态问题,能突破类的限制,去动态扩展类的功能,即不破坏封装,又能额外增加功能。

好处:任意扩展功能,聚焦业务逻辑;代码复用,集中管理,方便团队管理

举报

相关推荐

0 条评论