Java設計模式之-橋接模式
橋接模式就是把事物和其具體實現分開,使他們可以各自獨立的變化。橋接的用意是:將抽象化與實現化解耦,使得二者可以獨立變化,像我們常用的JDBC橋DriverManager一樣,JDBC進行連接數據庫的時候,在各個數據庫之間進行切換,基本不需要動太多的代碼,甚至絲毫不用動,原因就是JDBC提供統一接口,每個數據庫提供各自的實現,用一個叫做數據庫驅動的程序來橋接就行了。我們來看看關係圖:
示例代碼:
public class BridgeTest {
public static void main(String[] args) {
Bridge bridge=new MyBridge();
// 調用第一個對象
Sourceable3 source1=new SourceSub1();
bridge.setSource(source1);
bridge.method();
// 調用第二個對象
Sourceable3 source2=new sourceSub2();
bridge.setSource(source2);
bridge.method();
}
}
interface Sourceable3
{
public void method();
}
class SourceSub1 implements Sourceable3
{
@Override
public void method() {
System.out.println("this is sourceSub1's method");
}
}
class sourceSub2 implements Sourceable3
{
@Override
public void method() {
System.out.println("this is sourceSub2's method");
}
}
// 定義一個橋,持有Sourceable的一個實例:
abstract class Bridge
{
private Sourceable3 source;
public void method(){
source.method();
}
public Sourceable3 getSource(){
return source;
}
public void setSource(Sourceable3 source){
this.source=source;
}
}
class MyBridge extends Bridge{
public void method(){
getSource().method();
}
}
輸出結果:
this is sourceSub1's method
this is sourceSub2's method
這樣,就通過對Bridge類的調用,實現了對接口Sourceable的實現類SourceSub1和SourceSub2的調用。