用继承完成体系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 |
|