Java基础教程-兄弟连马剑威-110-装饰者模式_第1页
Java基础教程-兄弟连马剑威-110-装饰者模式_第2页
Java基础教程-兄弟连马剑威-110-装饰者模式_第3页
Java基础教程-兄弟连马剑威-110-装饰者模式_第4页
Java基础教程-兄弟连马剑威-110-装饰者模式_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

装饰者模式马剑威第110讲课程大纲1、继承带来的问题2、装饰者模式概述3、装饰者模式实现4、装饰者模式小结话说威哥当年创业开店--卖豆浆!因豆浆纯,分店几乎开遍全县城所有村,由于开展的实在是太快了,所以急于实现一套由计算机管理的自动化记账系统。主料:豆浆配料:糖 黑豆 五谷 鸡蛋…1、继承带来的问题1、继承带来的问题类爆炸!2、装饰者模式概述所以下面我们将拜访一下今天的主角—装饰者模式,看看她能给我们带来什么惊喜吧!

意图:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。该模式以对客户端透明的方式扩展对象的功能。2、装饰者模式概述适用环境在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。处理那些可以撤消的职责。当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。2、装饰者模式概述2、装饰者模式概述Component〔被装饰对象基类〕定义对象的接口,可以给这些对象动态增加职责;ConcreteComponent〔具体被装饰对象〕定义具体的对象,Decorator可以给它增加额外的职责;Decorator〔装饰者抽象类〕维护一个指向Component实例的引用,并且定义了与Component一致的接口;ConcreteDecorator〔具体装饰者〕具体的装饰对象,给内部持有的具体被装饰对象增加具体的职责;2、装饰者模式概述涉及角色抽象构件角色:定义一个抽象接口,来标准准备附加功能的类。具体构件角色:将要被附加功能的类,实现抽象构件角色接口。抽象装饰者角色:持有对具体构件角色的引用并定义与抽象构件角色一致的接口。具体装饰角色:实现抽象装饰者角色,负责为具体构件添加额外功能。

3、装饰者模式实现Drink.java 被装饰者对象的接口SoyaBeanMilk.java 具体的被装饰者对象EggDecorator.java 具体装饰者对象SugarDecorator.java 具体装饰者对象BlackBeanDecorator.java 具体装饰者对象Decorator.java 装饰者基类Test.java 测试4、装饰者模式小结OO原那么:动态地将责任附加到对象上。想要扩展功能,装饰者提供有别于继承的另一种选择。

要点:1、继承属于扩展形式之一,但不见得是到达弹性设计的最正确方案。2、在我们的设计中,应该允许行为可以被扩展,而不须修改现有的代码。3、组合和委托可用于在运行时动态地加上新的行为。4、除了继承,装饰者模式也可以让我们扩展行为。4、装饰者模式小结

要点:5、装饰者模式意味着一群装饰者类,这些类用来包装具体组件。6、装饰者类反映出被装饰的组件类型〔实际上,他们具有相同的类型, 都经过接口或继承实现〕。7、装饰者可以在被装饰者的行为前面与/或后面加上自己的行为, 甚至将被装饰者的行为整个取代掉,而到达特定的目的。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论