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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

用继承完成体系MyReader(专门用来读取数据的类)。
MyReader
       |--MyTextReader:专门用于读取文本数据
                |--MyBufferedTextReader:缓冲区
        |--MyMediaReader:专门用于读取媒体数据
                |--MyBufferedMediaReader:缓冲区
        |--MyDateReader:专门用于读取数据库数据
                |--MyBufferedDateReader:缓冲区
此处体系比较臃肿,降低了类与类之间的关系。但是子类可以复写父类中的方法,增强方法,直接引用子类的对象可以使用子类中特有的方法。
使用装饰模式,如下面例子:
  1. class MyBufferedReader extends MyReader
  2. {
  3.         private MyReader mr =null;
  4.         MyBufferedReader(Myreader mr)
  5.         {
  6.                 this.mr = mr;
  7.         }
  8. }
复制代码

都可以装饰Myreader子类,加入缓冲区能力,不用新建一个子类就写一个缓冲区子类。这样避免了体系臃肿,比继承更加灵活。考虑到多态,所以MyBufferedReader只能使用父类已经有的方法,不能使用子类中特有的方法。下面是装饰后的体系。
MyReader
        |--MyTextReader
        |--MyMediaReader
        |--MyDateReader
        |--MyBufferedReader
还有什么请大家补充 :lol

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马