A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© flying 中级黑马   /  2014-2-19 01:00  /  1214 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

毕老师讲装饰设计模式说BufferedReader就是一个装饰类 为什么不直接在将BufferedReader的方法放在Reader里面呢,让子类继承  ,继承和装饰设计模式是什么区别?

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

6 个回复

倒序浏览
BufferedReader的里面有它特有的方法,而Reader里面是所有字节输出流的共性方法(注意这个共性内容是提取出来的)。继承跟装饰大体上是差不多的,不过继承显得很关系很杂乱,很臃肿。装饰类就轻便多了有很好的扩展性。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
装饰 就是对一个类进行功能增强,  比如有个类想添加一个函数功能,如果用继承的话,虽然是可以,但是不符合继承的规则,继承是把所有的共性抽取出来。  而装饰就是 在原有的类的基础上添加一个功能。然后装饰类重写传进来类的所有方法,方法里面就直接调用穿进去类的方法即可。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 75100313 于 2014-2-19 08:13 编辑

黑马程序员_毕向东_Java基础视频教程第19天-07-IO流(装饰和继承的区别).zip
父类:读取


子类:文本读取   媒体文件读取  数据读取   

现在三个都需要缓冲区Buffer读取

继承虽然能用  但是缓冲技术都是一样的 ,最好把相同的功能提炼出来

这样在设计类的时候 就把父类当作参数构造进去  哪个子类需要增强 就把子类传进去(这里是多态的实现) 更好!

装饰模式 更灵活  扩展性更好!

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
....... 来自手机 中级黑马 2014-2-19 10:19:32
报纸
装饰设计模式比继承要好很多。 毕老师说 继承的体系会变的很臃肿。 装饰则好很多
回复 使用道具 举报
还有单继承的原因
回复 使用道具 举报
装饰是对类的进一步增强!使功能更完善或者达到我们需要的结果!这样的好处是以后我们需要扩展的时候可以自己弄~如果每次你调用方法都要继承会显得程序相对臃肿!而且继承和装饰还是有区别!继承是把所有子类的共性功能总结起来变成父类~而装饰是增加功能增加扩展性!希望对你有帮助哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马