装饰者模式是java23种设计模式之一,而且在开发中,很多技能知识点底层使用到了装饰者模式。今天来给大家简单介绍下:
使用场景
需要扩展一个类的功能,或给一个类增加附加功能。
需要动态地给一个对象增加功能,这些功能可以再动态地撤销。
需要为一批的兄弟类进行改装或加装功能,当然是首选装饰模式。
结构
1、抽象组件(Component):给出一个抽象接口,以规范准备接受附加责任的对象。
2、被装饰者(ConcreteComponent):Component的具体实现,也就是我们要装饰的具体对象。
3、装饰者组件(Decorator):持有组件对象的实例引用,该类的职责就是为了装饰具体组件对象,定义的基类。
优点
1、使用装饰者模式比使用继承更加灵活,因为它选择通过一种动态的方式来扩展一个对象的功能,在运行时可以选择不同的装饰器,从而实现不同的行为。
2、通过使用不同的具体装饰类以及这些装饰类的排列组合,可以创造出很多不同行为的组合。可以使用多个具体装饰类来装饰同一对象,得到功能更为强大的对象。
3、具体构件类与具体装饰类可以独立变化,它能是低耦合的。用户可以根据需要来增加新的具体构件类和具体装饰类,在使用时再对其进行各种组合,原有代码无须改变,符合“开闭原则”。
缺点
1、会产生很多的小对象,增加了系统的复杂性
2、这种比继承更加灵活机动的特性,也同时意味着装饰模式比继承更加易于出错,排错也很困难,对于多次装饰的对象,调试时寻找错误可能需要逐级排查,较为烦琐。
//////////
如果大家想更加详细了解装饰者模式的话,可以来看咱们的视频直播《程序员进阶必备:设计模式—装饰者模式》》。
通过学习咱们的视频直播,可以理解到传统继承增强方法时,所带来的弊端以及装饰者模式带来的好处。并且通过对装饰者模式组成部分的深入理解来解决开发中碰到问题。
讲师介绍
欧阳熊猫 知名财务软件-资深全栈工程师
从事java开发10年,主要负责银行信贷系统开发,国家电网融资租赁系统开发,首都机场设备管理系统开发及用友nc63开发
主播主题
《程序员进阶必备:设计模式—装饰者模式》》
直播时间
今晚8点
直播大纲
1、装饰者如何让程序变的更加强大
-
a 查看io流源码引出装饰者模式
-
b 装饰者模式特点介绍
2、装饰者和继承增强方法的区别
-
a 使用场景演示继承和装饰者
-
b 总结二者区别点
3、装饰者体系结构深入解析
-
a 抽象构件,具体构件,装饰角色,具体装饰承担的责任
-
b 装饰者结构简化
4、装饰者透明/半透明特性
-
a 案例简介(使用齐天大圣变化举例)
-
b 透明特性下代码的编写方式
-
c 半透明特性下代码的编写方式
适合人群
有一定的javaSE基础,本课程会用到java基本语法及接口和继承的使用
参与方式
限时免费!!!
扫描下方海报,加 佳佳 小姐姐好友,回复【直播】获取听课名额~
共同学习,写下你的评论
评论加载中...
作者其他优质文章