三:里氏替換原則(Liskov Substitution Principle)
//窗口類
public class Window{
public void show(View child){
child.draw();
}
}
//建立視圖抽象,測量視圖的寬高爲公用代碼,繪製實現件給具體子類
public abstract class View{
public abstract void draw();
public void measure(int width,int height){
//測量視圖大小,具體代碼省略
}
}
//View子類,Button
public class Button extends View{
public void draw(){
//繪製按鈕。。。
}
}
//View子類,TextView
public class TextView{
public void draw(){
//繪製文本。。。
}
}
Window依賴於View,View定義了視圖抽象,measure是各個子類共享的類,具體的draw交給其子類去實現。任何繼承自View類的子類都可以設置給show方法,這就是里氏替換原則。這樣就可以產生千變萬化的View,而且可以統一傳遞給Window來進行管理並展示在屏幕上。