Java 中橋接模式——對象結(jié)構(gòu)型模式的實例詳解
Java 中橋接模式——對象結(jié)構(gòu)型模式的實例詳解
一、意圖
將抽象部分與它的實現(xiàn)部分分離,使他們都可以獨立的變化。
二、適用性
以下一些情況使用Bridge模式
你不希望在抽象和它的實現(xiàn)部分之間有一個固定的綁定關(guān)系。例如這種情況可能因為,在程序運行時刻實現(xiàn)部分應(yīng)可以被選擇或者切換。
類的抽象以及它的實現(xiàn)都應(yīng)該可以通過生成子類的方法加以擴充。這時Bridge模式使你可以對不同的抽象接口和實現(xiàn)部分進行組合,并分別對他們進行擴充。
對一個抽象的實現(xiàn)部分的修改應(yīng)對客戶不產(chǎn)生影響,即客戶代碼不必重新編譯。
(C++)你想對客戶完全隱藏抽象的實現(xiàn)部分。在C++中,類的表示在類接口中是可見的。
三、結(jié)構(gòu)

四、代碼
public interface Implementor {
/**
* 實現(xiàn)抽象部分的具體方法
*/
public void operationImpl();
}
public class ConcreteImplementorA implements Implementor {
@Override
public void operationImpl() {
System.out.println("ConcreteImplementorA");
}
}
public class ConcreteImplementorB implements Implementor {
@Override
public void operationImpl() {
System.out.println("ConcreteImplementorB");
}
}
public abstract class Abstraction {
private Implementor mImplementor;
/**
* 通過實現(xiàn)部分對象的引用構(gòu)造抽象部分的對象
*
* @param implementor 實現(xiàn)部分對象的引用
*/
public Abstraction(Implementor implementor){
mImplementor = implementor;
}
public void operation(){
mImplementor.operationImpl();
}
}
public class RefinedAbstraction extends Abstraction {
/**
* 通過實現(xiàn)部分對象的引用構(gòu)造抽象部分的對象
*
* @param implementor 實現(xiàn)部分對象的引用
*/
public RefinedAbstraction(Implementor implementor) {
super(implementor);
}
public void refinedOperation(){
//對 Abstraction中的方法進行擴展。
System.out.println("refinedOperation");
operation();
}
}
public class Client {
public static void main(String[] args){
Abstraction abstraction = new RefinedAbstraction(new ConcreteImplementorA());
abstraction.operation();
}
}
如有疑問請留言或者到本站這區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
spring boot如何使用spring AOP實現(xiàn)攔截器
本篇文章主要介紹了spring boot如何使用spring AOP實現(xiàn)攔截器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04
Retrofit+Rxjava實現(xiàn)文件上傳和下載功能
這篇文章主要介紹了Retrofit+Rxjava實現(xiàn)文件上傳和下載功能,文中提到了單文件上傳和多文件上傳及相關(guān)參數(shù)的請求,需要的朋友參考下吧2017-11-11
SpringBoot多環(huán)境配置及配置文件分類實例詳解
這篇文章主要介紹了SpringBoot多環(huán)境配置及配置文件分類,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-10-10
SpringBoot整合Web開發(fā)之Json數(shù)據(jù)返回的實現(xiàn)
這篇文章主要介紹了SpringBoot整合Web開發(fā)其中Json數(shù)據(jù)返回的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08

