国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

結構型設計模式——橋接模式

這篇具有很好參考價值的文章主要介紹了結構型設計模式——橋接模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

摘要

橋接模式(Bridge pattern): 使用橋接模式通過將實現(xiàn)和抽象放在兩個不同的類層次中而使它們可以獨立改變。

一、橋接模式的意圖

橋接模式 (Bridge) 是一種結構型設計模式, 可將抽象部分與實現(xiàn)部分分離,使它們都可以獨立的變化。如果一個系統(tǒng)需要在構件的抽象化角色和具體化角色之間增加更多的靈活性,避免在兩個層次之間建立靜態(tài)的聯(lián)系。抽象化角色和具體化角色都應該可以被子類擴展。

在這種情況下,橋接模式可以靈活地組合不同的抽象化角色和具體化角色,并獨立化地擴展。設計要求實現(xiàn)化角色的任何改變不應當影響客戶端,或者說實現(xiàn)化角色的改變對客戶端是完全透明的。

二、橋接模式的場景

  • 如果你想要拆分或重組一個具有多重功能的龐雜類(例如能與多個數(shù)據(jù)庫服務器進行交互的類),可以使用橋接模式。
  • 如果你希望在幾個獨立維度上擴展一個類, 可使用該模式。
  • 如果你需要在運行時切換不同實現(xiàn)方法, 可使用橋接模式。

三、橋接模式的類圖

結構型設計模式——橋接模式,軟件設計模式,設計模式,橋接模式

  • 抽象部分 (Abstraction) 提供高層控制邏輯, 依賴于完成底層實際工作的實現(xiàn)對象。
  • 實現(xiàn)部分 (Implementation) 為所有具體實現(xiàn)聲明通用接口。 抽象部分僅能通過在這里聲明的方法與實現(xiàn)對象交互。
    • 抽象部分可以列出和實現(xiàn)部分一樣的方法, 但是抽象部分通常聲明一些復雜行為, 這些行為依賴于多種由實現(xiàn)部分聲明的原語操作。
  • 具體實現(xiàn) (Concrete Implementations) 中包括特定于平臺的代碼。
  • 精確抽象 (Refined Abstraction) 提供控制邏輯的變體。 與其父類一樣, 它們通過通用實現(xiàn)接口與不同的實現(xiàn)進行交互。
  • 通常情況下, 客戶端 (Client) 僅關心如何與抽象部分合作。 但是, 客戶端需要將抽象對象與一個實現(xiàn)對象連接起來

四、橋接模式的實現(xiàn)

【Implementor】定義實現(xiàn)接口。

interface Implementor {
    // 實現(xiàn)抽象部分需要的某些具體功能
    public void operationImpl();
}

【Abstraction】定義抽象接口

abstract class Abstraction {
    // 持有一個 Implementor 對象,形成聚合關系
    protected Implementor implementor;

    public Abstraction(Implementor implementor) {
        this.implementor = implementor;
    }

    // 可能需要轉調實現(xiàn)部分的具體實現(xiàn)
    public void operation() {
        implementor.operationImpl();
    }
}

【ConcreteImplementor】實現(xiàn) Implementor 中定義的接口

class ConcreteImplementorA implements Implementor {
    @Override
    public void operationImpl() {
        // 真正的實現(xiàn)
        System.out.println("具體實現(xiàn)A");
    }
}

class ConcreteImplementorB implements Implementor {
    @Override
    public void operationImpl() {
        // 真正的實現(xiàn)
        System.out.println("具體實現(xiàn)B");
    }
}

【RefinedAbstraction】擴展 Abstraction 類。

class RefinedAbstraction extends Abstraction {

    public RefinedAbstraction(Implementor implementor) {
        super(implementor);
    }

    public void otherOperation() {
        // 實現(xiàn)一定的功能,可能會使用具體實現(xiàn)部分的實現(xiàn)方法,
        // 但是本方法更大的可能是使用 Abstraction 中定義的方法,
        // 通過組合使用 Abstraction 中定義的方法來完成更多的功能。
    }
}
public class BridgePattern {
    public static void main(String[] args) {
        Implementor implementor = new ConcreteImplementorA();
        RefinedAbstraction abstraction = new RefinedAbstraction(implementor);
        abstraction.operation();
        abstraction.otherOperation();
    }
}

----------------------------------------------------------

具體實現(xiàn)A
其他操作

五、橋接模式開源示例

  • 使用示例: 橋接模式在處理跨平臺應用、 支持多種類型的數(shù)據(jù)庫服務器或與多個特定種類 (例如云平臺和社交網(wǎng)絡等) 的 API 供應商協(xié)作時會特別有用。
  • 識別方法: 橋接可以通過一些控制實體及其所依賴的多個不同平臺之間的明確區(qū)別來進行識別。
  • Java 中橋接模式應用最經(jīng)典的代表無疑是日志組件 slf4j 的橋接 jar 包。假如,你正在開發(fā)應用程序所調用的組件當中已經(jīng)使用了 common-logging,這時你需要 jcl-over-slf4j.jar 把日志信息輸出重定向到 slf4j-api,slf4j-api 再去調用 slf4j 實際依賴的日志組件。這個過程稱為橋接。下圖是官方的 slf4j 橋接策略圖:

六、橋接模式的總結

  • 橋接模式通常會于開發(fā)前期進行設計,使你能夠將程序的各個部分獨立開來以便開發(fā)。另一方面,適配器模式通常在已有程序中使用,讓相互不兼容的類能很好地合作。
  • 橋接、狀態(tài)模式和策略模式(在某種程度上包括適配器)模式的接口非常相似。實際上,它們都基于組合模式——即將工作委派給其他對象,不過也各自解決了不同的問題。模式并不只是以特定方式組織代碼的配方,你還可以使用它們來和其他開發(fā)者討論模式所解決的問題。
  • 你可以將抽象工廠模式和橋接搭配使用。如果由橋接定義的抽象只能與特定實現(xiàn)合作,這一模式搭配就非常有用。在這種情況下,抽象工廠可以對這些關系進行封裝,并且對客戶端代碼隱藏其復雜性。
  • 你可以結合使用生成器模式和橋接模式團︰主管類負責抽象工作,各種不同的生成器負責實現(xiàn)工作。

博文參考

設計模式之橋接模式 | DESIGN

結構型 - 橋接(Bridge) | Java 全棧知識體系文章來源地址http://www.zghlxwxcb.cn/news/detail-730048.html

到了這里,關于結構型設計模式——橋接模式的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【Java 設計模式】結構型之橋接模式

    【Java 設計模式】結構型之橋接模式

    橋接模式(Bridge Pattern)是一種結構型設計模式, 它將抽象部分與實現(xiàn)部分分離,使它們可以獨立變化,從而降低它們之間的耦合 。橋接模式通過將抽象部分和實現(xiàn)部分分離,使得它們可以獨立地變化,同時在它們之間建立一個橋梁。在本文中,我們將介紹 Java 中橋接模式的

    2024年01月19日
    瀏覽(21)
  • 笨蛋學設計模式結構型模式-橋接模式【11】

    7.5.1概念 ? 橋接模式主要將抽象部分與實現(xiàn)部分分離開來,使得它們可以相互獨立地變化。抽象部分定義了一個抽象類或接口,包含一些基本操作以及包含一個指向實現(xiàn)部分的引用。實現(xiàn)部分也是一個抽象類或接口,定義了一些具體的操作。 7.5.2場景 ? 比如在路上隨處可見

    2024年01月17日
    瀏覽(28)
  • c#設計模式-結構型模式 之 橋接模式

    c#設計模式-結構型模式 之 橋接模式

    ????????橋接模式是一種設計模式,它將抽象與實現(xiàn)分離,使它們可以獨立變化。這種模式涉及到一個接口作為橋梁,使實體類的功能獨立于接口實現(xiàn)類。這兩種類型的類可以結構化改變而互不影響。 ????????橋接模式的主要目的是通過將實現(xiàn)和抽象分離,使兩者可以

    2024年02月12日
    瀏覽(19)
  • 《golang設計模式》第二部分·結構型模式-02-橋接模式(Bridge)

    《golang設計模式》第二部分·結構型模式-02-橋接模式(Bridge)

    橋(Bridge)使用組合關系將代碼的實現(xiàn)層和抽象層分離,讓實現(xiàn)層與抽象層代碼可以分別自由變化。 例如 客戶端調用橋接接口實現(xiàn)原有功能和擴展功能的組合 Implementor(實施者): 具體實施者的抽象,可以是一個接口。 Concrete Implementor(具體實施者): 可以理解為擴展之前

    2024年02月12日
    瀏覽(19)
  • Java設計模式之結構型-橋接模式(UML類圖+案例分析)

    Java設計模式之結構型-橋接模式(UML類圖+案例分析)

    目錄 一、基礎概念 二、UML類圖 三、角色設計 四、案例分析 4.1、支付方式 4.2、支付渠道? 五、總結 橋接模式(Bridge Pattern)是一種結構型設計模式,其主要目的是“將抽象部分與實現(xiàn)部分分離,使它們都可以獨立地變化”。 橋接模式的核心思想是把抽象(abstraction)與實現(xiàn)

    2024年02月13日
    瀏覽(22)
  • 設計模式-04.01-結構型-代理&橋接&裝飾器&適配器

    設計模式-04.01-結構型-代理&橋接&裝飾器&適配器

    創(chuàng)建型模式比較好理解,后面的結構型和行為型設計模式不是那么好理解。如果遇到不好理解的設計模式,我一般會在開頭舉比較簡單的Demo案例來幫助理解。 前面幾節(jié),我們講了設計模式中的創(chuàng)建型模式。創(chuàng)建型模式主要解決對象的創(chuàng)建問題,封裝復雜的創(chuàng)建過程,解耦對

    2024年02月09日
    瀏覽(24)
  • 軟件設計實驗三 結構型設計模式實驗

    軟件設計實驗三 結構型設計模式實驗

    1.結合實例,熟練繪制常見的結構型設計模式結構圖。 2.結合實例,熟練使用任意一種面向對象編程語言實現(xiàn)常見的結構型設計模式。 3.通過本實驗,理解每一種結構型設計模式的模式動機,掌握模式結構,學習如何使用代碼實現(xiàn)這些設計模式。 1.現(xiàn)有一個接口DataOperation定義

    2024年02月03日
    瀏覽(38)
  • 軟件工程(十三) 設計模式之結構型設計模式(一)

    軟件工程(十三) 設計模式之結構型設計模式(一)

    前面我們記錄了創(chuàng)建型設計模式,知道了通過各種模式去創(chuàng)建和管理我們的對象。但是除了對象的創(chuàng)建,我們還有一些結構型的模式。 簡要說明 將一個類的接口轉換為用戶希望得到的另一個接口。它使原本不相同的接口得以協(xié)同工作。 速記 轉換接口 類圖如下 角色說

    2024年02月11日
    瀏覽(30)
  • 軟件工程(十四) 設計模式之結構型模式(二)

    軟件工程(十四) 設計模式之結構型模式(二)

    簡要說明 將對象組合成樹形結構以表示“整體-部分”的層次結構,使得用戶對單個對象和組合對象的使用具有一致性。 速記 樹形目錄結構 類圖如下 由類圖其實可以看出,組合模式就是將具有父子關系的結構,組裝形成一棵樹,并且根據(jù)規(guī)范,樹干節(jié)點和葉子節(jié)點均

    2024年02月11日
    瀏覽(26)
  • 設計模式--------結構型模式

    設計模式--------結構型模式

    結構型模式描述如何將類或對象按某種布局組成更大的結構。它分為類結構型模式和對象結構型模式,前者采用繼承機制來組織接口和類,后者釆用組合或聚合來組合對象。 由于組合關系或聚合關系比繼承關系耦合度低,滿足“合成復用原則”,所以對象結構型模式比類結構

    2024年02月13日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包