标题: 白箱复用和黑箱复用 [打印本页] 作者: 暮色醉玄阳 时间: 2014-10-27 14:05 标题: 白箱复用和黑箱复用 1.白箱复用:又叫继承复用,子类会继承父类所有的东西,
从某种程度上说白箱复用破坏了封装。是一种 is a 的关系。
例:class Liucy{
public void teachCpp(){System.out.println("Teach Cpp");}
public void chimogu(){ }
}
class Huxy extends Liucy{}
2、黑箱复用:又叫组合复用,是一种 has a 的关系。
例:class Liucy{
public void teachCpp(){System.out.println("Teach Cpp");}
public void chimogu(){ }
}
class Huxy {
private Liucy liucy = new Liucy();
public void teachCpp(){liucy.teachCpp();}
}
原则:组合复用取代继承复用原则。
使我们可以有机会选择该复用的功能。