設計模式(9)Bridge橋梁設計模式
一.什麽是Bridge模式
負責兩兩個層次結構的東西連接起來,分別是類的功能層次結構和類的實現層次結構.
二.解析
1.類的功能層次結構是通過子類繼承父類添加新的功能函數.
2.類的實現層次結構是通過父類定義抽象類,具體實現交給子類;父類負責定義對接的接口,子類負責實現接口.
3.父類Display負責實現基本函數,而函數裏面其實是調用抽象方法類的函數,如:
public Display(DisplayImpl impl){
this.impl = impl;
}
public void open(){
impl.rawOpen()(
}
並且父類Display還負責類似的定義模板方法,說的類似,畢竟方法還是自己的,但是方法的裏面卻套著別人的方法,不過也可以包含自己的,如
public final void display(){
open();
print();
close();
}
哈哈,想想說模板還是不怎麽準確的,只能說某種情況下.
4.子類CountDisplay負責增加功能,繼承後寫功能就是,比較簡單就不啰嗦.
5.實現層次的父類DisplayImpl,跟子類StringDisplayImpl的功能是一個抽象方法類,一個實現方法類.
而之前的Display類的方法就是包含StringDisplayImpl的實現方法
三.代碼解析
Main程序
public class Main(){
public static void main (String[] args){
Display d1 = new Display(new StringDisplayImpl("Hello,China."));
Display d2 = new CountDisplay(new StringDisplayImpl("Hello,World."));
CountDisplay d3 = new CountDisplay(new StringDisplayImpl("Hello,Universe."));
d1.display();
d2.display();
d3.display();
d3.multiDisplay(); //CountDisplay子類的新功能函數
}
}
四.UML圖
1.資料是這麽寫的
CountDisplay--->Display<--->DsplayImpl<---StringDisplayImpl
2.我覺得是這樣
CountDisplay--->Display<--->StringDisplayImpl--->DsplayImpl
設計模式(9)Bridge橋梁設計模式