黑马程序员技术交流社区
标题:
装饰设计模式
[打印本页]
作者:
flying
时间:
2014-2-19 01:00
标题:
装饰设计模式
毕老师讲装饰设计模式说BufferedReader就是一个装饰类 为什么不直接在将BufferedReader的方法放在Reader里面呢,让子类继承 ,继承和装饰设计模式是什么区别?
作者:
唐宋元明清
时间:
2014-2-19 01:37
BufferedReader的里面有它特有的方法,而Reader里面是所有字节输出流的共性方法(注意这个共性内容是提取出来的)。继承跟装饰大体上是差不多的,不过继承显得很关系很杂乱,很臃肿。装饰类就轻便多了有很好的扩展性。
作者:
榨菜
时间:
2014-2-19 03:24
装饰 就是对一个类进行功能增强, 比如有个类想添加一个函数功能,如果用继承的话,虽然是可以,但是不符合继承的规则,继承是把所有的共性抽取出来。 而装饰就是 在原有的类的基础上添加一个功能。然后装饰类重写传进来类的所有方法,方法里面就直接调用穿进去类的方法即可。
作者:
75100313
时间:
2014-2-19 07:56
本帖最后由 75100313 于 2014-2-19 08:13 编辑
黑马程序员_毕向东_Java基础视频教程第19天-07-IO流(装饰和继承的区别).zip
父类:读取
子类:文本读取 媒体文件读取 数据读取
现在三个都需要缓冲区Buffer读取
继承虽然能用 但是缓冲技术都是一样的 ,最好把相同的功能提炼出来
这样在设计类的时候 就把父类当作参数构造进去 哪个子类需要增强 就把子类传进去(这里是多态的实现) 更好!
装饰模式 更灵活 扩展性更好!
作者:
.......
时间:
2014-2-19 10:19
装饰设计模式比继承要好很多。 毕老师说 继承的体系会变的很臃肿。 装饰则好很多
作者:
山治0712
时间:
2014-2-19 21:07
还有单继承的原因
作者:
白_蓝(八公)
时间:
2014-2-20 08:33
装饰是对类的进一步增强!使功能更完善或者达到我们需要的结果!这样的好处是以后我们需要扩展的时候可以自己弄~如果每次你调用方法都要继承会显得程序相对臃肿!而且继承和装饰还是有区别!继承是把所有子类的共性功能总结起来变成父类~而装饰是增加功能增加扩展性!希望对你有帮助哈
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2