首页 > 代码库 > 装饰和继承的区别
装饰和继承的区别
子类用的技术都是一样的,那么有必要给他单独定一个子类吗?
这就是装饰模式生成的原因。
class MyBufferReader{
MyBufferedReader(被提高效率的类1 class){}
MyBufferedReader(被提高效率的类2 class){}
MyBufferedReader(被提高效率的类3 class){}
}
--------------------------------
优化后的代码A:
class MyBufferReader extends 父类{
private 父类 class;
MyBufferedReader(父类 class){}
//组合结构
}
---------------------------------
装饰模式,比继承要灵活;降低了类与类之间的关系。
装饰类因为增强已有对象,具备的功能和已有的对象是相同的,只不过提供了更强的功能。所以装饰类和被装饰类,通常都属于一个体系中。
-----------------------
装饰类,覆盖Reader类中的抽象方法
public void close(){
class.close();
}
public int read(char[] buf, int off, int len){
return r.read(buf, off, len);
}
---------------------------------
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。