這篇文章將為大家詳細講解有關java如何實現橋接模式,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創新互聯長期為上千家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為崇州企業提供專業的成都做網站、網站設計,崇州網站改版等技術服務。擁有10年豐富建站經驗和眾多成功案例,為您定制開發。介紹
橋接模式 (Bridge)將抽象部分與實現部分分離,使它們都可以獨立的變化。
橋接模式是一種結構式模式。
結構
代碼實現
Implementor : 定義實現接口。
interface Implementor { // 實現抽象部分需要的某些具體功能 public void operationImpl(); }
Abstraction : 定義抽象接口。
abstract class Abstraction { // 持有一個 Implementor 對象,形成聚合關系 protected Implementor implementor; public Abstraction(Implementor implementor) { this.implementor = implementor; } // 可能需要轉調實現部分的具體實現 public void operation() { implementor.operationImpl(); } }
ConcreteImplementor : 實現 Implementor 中定義的接口。
class ConcreteImplementorA implements Implementor { @Override public void operationImpl() { // 真正的實現 System.out.println("具體實現A"); } } class ConcreteImplementorB implements Implementor { @Override public void operationImpl() { // 真正的實現 System.out.println("具體實現B"); } }
RefinedAbstraction : 擴展 Abstraction 類。
class RefinedAbstraction extends Abstraction { public RefinedAbstraction(Implementor implementor) { super(implementor); } public void otherOperation() { // 實現一定的功能,可能會使用具體實現部分的實現方法, // 但是本方法更大的可能是使用 Abstraction 中定義的方法, // 通過組合使用 Abstraction 中定義的方法來完成更多的功能。 } }
測試代碼
public class BridgePattern { public static void main(String[] args) { Implementor implementor = new ConcreteImplementorA(); RefinedAbstraction abstraction = new RefinedAbstraction(implementor); abstraction.operation(); abstraction.otherOperation(); } }
運行結果
具體實現A
其他操作
應用場景
1、如果你不希望在抽象和實現部分采用固定的綁定關系,可以采用橋接模式,來把抽象和實現部分分開,
然后在程序運行期間來動態的設置抽象部分需要用到的具體的實現,還可以動態切換具體的實現。
2、如果出現抽象部分和實現部分都應該可以擴展的情況,可以采用橋接模式,讓抽象部分和實現部分可以
獨立的變化,從而可以靈活的進行單獨擴展,而不是攪在一起,擴展一邊會影響到另一邊。
3、如果希望實現部分的修改,不會對客戶產生影響,可以采用橋接模式,客戶是面向抽象的接口在運行,
實現部分的修改,可以獨立于抽象部分,也就不會對客戶產生影響了,也可以說對客戶是透明的。
4、如果采用繼承的實現方案,會導致產生很多子類,對于這種情況,可以考慮采用橋接模式,分析功能變化的原因,看看是否能分離成不同的緯度,然后通過橋接模式來分離它們,從而減少子類的數目。
要點
如果一個系統需要在構件的抽象化角色和具體化角色之間增加更多的靈活性,避免在兩個層次之間建立靜態的聯系。
抽象化角色和具體化角色都應該可以被子類擴展。在這種情況下,橋接模式可以靈活地組合不同的抽象化角色和具體化角色,并獨立化地擴展。
設計要求實現化角色的任何改變不應當影響客戶端,或者說實現化角色的改變對客戶端是完全透明的。
關于“java如何實現橋接模式”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
文章標題:java如何實現橋接模式-創新互聯
文章鏈接:http://vcdvsql.cn/article34/ceogse.html
成都網站建設公司_創新互聯,為您提供企業網站制作、營銷型網站建設、商城網站、動態網站、外貿建站、全網營銷推廣
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯