类层次功能分为两个功能:
1.添加新的功能
2.添加新的实现;
分离类层次这两个功能,利用委托来桥接两个类的层次
public class Display{ //功能超类
private DisplayImpl mDisplayImpl;
public Display(DisplayImpl displayImpl){ //委托桥接
mDisplayImpl = displayImpl;
}
open(){
mDisplay.rawOpen();//功能层类利用实现层类方法实现业务
}
}
public abstract class DisplayImpl{ //实现超类
rawOpen():
}
public class MultiDisplay extends Display{ //扩展功能
public void mutiOpen() //新的功能接口
}