黑马程序员java教程:装饰设计模式

黑马程序员java教程:装饰设计模式

ID:34027687

大小:100.21 KB

页数:4页

时间:2019-03-03

黑马程序员java教程:装饰设计模式_第1页
黑马程序员java教程:装饰设计模式_第2页
黑马程序员java教程:装饰设计模式_第3页
黑马程序员java教程:装饰设计模式_第4页
资源描述:

《黑马程序员java教程:装饰设计模式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、装饰设计模式  对原有类进行了功能的改变,增强。  示例:1.classPerson{2.    voidchifan(){3.        System.out.println("吃饭");4.    }5.}6.7.//采用装饰的方式增强Person类8.//这个类的出现是为了增强Person而出现的9.classNewPerson{10.    privatePersonp;11.12.    NewPerson(Personp){13.        this.p=p;14.    }15.16.    publicvoidchifan()

2、{17.        System.out.println("开胃酒");18.        p.chifan();19.        System.out.println("甜点");20.    }21.}22.23.//采用继承的方式增强Person类24.classNewPerson2extendsPerson{25.    publicvoidchifan(){26.        System.out.println("开胃酒");27.        super.chifan();28.        System.out.pri

3、ntln("甜点");29.    }30.}31.1.publicclassPersonDemo{2.    publicstaticvoidmain(String[]args){3.        Personp=newPerson();4.        NewPersonnp1=newNewPerson(p);5.        np1.chifan();6.7.        System.out.println("---------------");8.9.        NewPerson2np2=newNewPerson2();10.

4、        np2.chifan();11.    }12.}13.复制代码  运行结果:  装饰和继承都能实现一样的特点:进行功能的扩展增强。有什么区别呢?  首先有一个继承体系:  Writer      

5、--TextWriter:用于操作文本      

6、--MediaWriter:用于操作媒体  如果想要对操作的动作进行效率的提高,按照面向对象,可以通过继承的方式对具体的对象进行功能的扩展,那么就需要加入缓冲技术。  Writer      

7、--TextWriter:用于操作文本          

8、--BufferTextWrite

9、r:加入了缓冲技术的操作文本的对象      

10、--MediaWriter:用于操作媒体          

11、--BufferMediaWriter:加入了缓冲技术的操作媒体的对象  以上方式并不理想,如果这个体系需要再进行功能扩展,又多了更多流对象。  这样就会发现只为提高功能,导致继承体系越来越臃肿,不够灵活。   重新思考问题:  既然加入的都是同一种技术--缓冲。  前一种是让缓冲和自己的流对象相结合。  可不可以将缓冲进行单独的封装,哪个对象需要缓冲就将哪个对象和缓冲关联。1.classBuffer{2.    Buffer(TextWri

12、terw){}3.    Buffer(MediaWriterw){}4.}复制代码  简化为:1.1.classBufferedWriterextendsWriter{2.    BufferedWriter(Writerw){}3.}复制代码  Writer      

13、--TextWriter:用于操作文本      

14、--MediaWriter:用于操作媒体      

15、--BufferedWriter:用于提高效率  可见:装饰比继承灵活。  特点:装饰类和被装饰类都必须所属同一个接口或者父类。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。