黑马程序员技术交流社区
标题:
继承与装饰设计模式的区别
[打印本页]
作者:
ye646682485
时间:
2015-4-30 09:18
标题:
继承与装饰设计模式的区别
用继承完成体系MyReader(专门用来读取数据的类)。
MyReader
|--MyTextReader:专门用于读取文本数据
|--MyBufferedTextReader:缓冲区
|--MyMediaReader:专门用于读取媒体数据
|--MyBufferedMediaReader:缓冲区
|--MyDateReader:专门用于读取数据库数据
|--MyBufferedDateReader:缓冲区
此处体系比较臃肿,降低了类与类之间的关系。但是子类可以复写父类中的方法,增强方法,直接引用子类的对象可以使用子类中特有的方法。
使用装饰模式,如下面例子:
class MyBufferedReader extends MyReader
{
private MyReader mr =null;
MyBufferedReader(Myreader mr)
{
this.mr = mr;
}
}
复制代码
都可以装饰Myreader子类,加入缓冲区能力,不用新建一个子类就写一个缓冲区子类。这样避免了体系臃肿,比继承更加灵活。考虑到多态,所以MyBufferedReader只能使用父类已经有的方法,不能使用子类中特有的方法。下面是装饰后的体系。
MyReader
|--MyTextReader
|--MyMediaReader
|--MyDateReader
|--MyBufferedReader
还有什么请大家补充 :lol
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2