- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
兄弟连_马剑威_JAVA基础_110_装饰者模式
装饰者模式
第 110 讲
马剑威马剑威
课程大纲课程大纲
1、继承带来的问题
2 、装饰者模式概述
3、装饰者模式实现
4 、装饰者模式小结
1、继承带来的问题继承带来的问题
• 话说威哥当年创业开店--卖豆浆!因豆浆纯,分店几乎开遍全县城所有村,由于
发发展的实在是太快了展的实在是太快了,,所以急于实现所以急于实现一套由计算机管理的自动化记账系统套由计算机管理的自动化记账系统。。
• 主料:豆浆
•• 配料配料::糖糖 黑豆黑豆 五谷五谷 鸡蛋鸡蛋…
1、继承带来的问题继承带来的问题
• 话说威哥当年创业开店--卖豆浆!因豆浆纯,分店几乎开遍全县城所有村,由于
发发展的实在是太快了展的实在是太快了,,所以急于实现所以急于实现一套由计算机管理的自动化记账系统套由计算机管理的自动化记账系统。。
• 主料:豆浆
•• 配料配料::糖糖 黑豆黑豆 五谷五谷 鸡蛋鸡蛋…
1、继承带来的问题继承带来的问题
类爆炸类爆炸!!
2 、装饰者模式装饰者模式概述概述
• 所以下面我们将拜访一下今天的主角—装饰者模式,看看她能给我们带来什么惊喜
吧吧!!
•
• 意图:
•• 动态地给动态地给一个对象添加个对象添加一些额外的职责些额外的职责。就增加功能来说就增加功能来说,DecoratorDecorator模式相比生成模式相比生成
子类更为灵活。该模式以对客户端透明的方式扩展对象的功能。
2 、装饰者模式装饰者模式概述概述
• 适用环境
•• 在不影响其他对象的情况下在不影响其他对象的情况下,以动态以动态、透明的方式给单个对象添加职责透明的方式给单个对象添加职责。
• 处理那些可以撤消的职责。
• 当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为
支持每支持每一种组合将产生大量的子类种组合将产生大量的子类,使得子类数目呈爆炸性增长使得子类数目呈爆炸性增长。另另一种情况可能种情况可能
是因为类定义被隐藏,或类定义不能用于生成子类。
2 、装饰者模式装饰者模式概述概述
2 、装饰者模式装饰者模式概述概述
• Compponent (被装饰对象基类)
• 定义对象的接口,可以给这些对象动态增加职责;
• ConcreteComponent (具体被装饰对象)
• 定定义具体具体的对象象,Decorator可以给给它增加额外增加额外的职责责;
• Decorator (装饰者抽象类)
• 维护一个指向Component实例的引用,并且定义了与Component一致的接口;
• CoConccreteeteDecoecoratoator ((具体装饰者具体装饰者))
• 具体的装饰对象,给内部持有的具体被装饰对象增加具体的职责;
2 、装饰者模式装饰者模式概述概述
• 涉及角色
• 抽象构件角色:定义一个抽象接口,来规范准备附加功能的类。
• 具体构件角色:将要被附加功能的类,实现抽象构件角色接口。
• 抽象象装饰饰者角角色:持有持有对具体构件角具体构件角色的引用并定并定义与抽象构件角象构件角色一致致的接接口。
• 具体装饰角色:实现抽象装饰者角色,负责为具体构件添加额外功能。
•
3、装饰者模式装饰者模式实现实现
• Drink.java 被装饰者对象的接口
•• SoyaBeanMilkSoyaBeanMilk.javajava 具体的被装饰者对象具体的被装饰者对象
• EggDecorator.java 具体装饰者对象
• SugarDecorator.java
文档评论(0)