GOF設計模式之橋接模式

2021-03-03 迪捷數原

現需要提供能夠繪製4種不同顏色且筆畫粗細有大中小3種型號的畫筆。

我們需要準備3*4=12支蠟筆,也就是說必須準備12個具體的蠟筆類

只需要準備三種型號的毛筆,外加四個顏料盒,用3+4=7個類就可以實現12支蠟筆的功能

橋接模式的定義:將抽象實現分離,使它們可以獨立變化。它是用關聯關係代替繼承關係來實現,從而降低了抽象和實現這兩個可變維度的耦合度

interface Implementor{    public void OperationImpl();}class ConcreteImplementorA implements Implementor{    public void OperationImpl(){        System.out.println("具體實現化(Concrete Implementor)角色被訪問" );    }abstract class Abstraction{   protected Implementor imple;   protected Abstraction(Implementor imple){       this.imple=imple;   }   public abstract void Operation();   }class RefinedAbstraction extends Abstraction{   protected RefinedAbstraction(Implementor imple){       super(imple);   }   public void Operation(){       System.out.println("擴展抽象化(Refined Abstraction)角色被訪問" );       imple.OperationImpl();   }}public class BridgeTest{    public static void main(String[] args){        Implementor imple=new ConcreteImplementorA();        Abstraction abs=new RefinedAbstraction(imple);        abs.Operation();    }}

擴展抽象化(Refined Abstraction)角色被訪問 具體實現化(Concrete Implementor)角色被訪問

String sql = "具體要操作的sql語句";  Class.forName("驅動的名字");  PreparedStatement pstmt = conn.prepareStatement(sql);  ResultSet rs = pstmt.executeQuery(sql);    while (rs.next()) {          String uuid = rs.getString("uuid");          int age = rs.getInt(2);  }  rs.close();  pstmt.close();  conn.close();

我們寫的應用程式,是面向JDBC的API在開發,這些接口就相當於橋接模式中的抽象部分的接口。JDBC的驅動程序實現了JDBC的API,驅動程序就相當於橋接模式中的具體實現部分。DriverManager來把它們橋接起來,從某個側面來看,DriverManager在這裡起到了類似於簡單工廠的功能。

該例子詳情可見:

https://www.jianshu.com/p/af6b1b27f638

介紹了廣義橋接模式和更多其他模式對比

相同點:

讓兩個東西配合工作,且和對象適配器模式一樣,都存在一個類調用另一個類。

相關焦點

  • 設置中國移動光貓為橋接模式,可以提高網速
    為什麼要給光貓設置成橋接模式,因為用路由器進行撥號,這樣速度更快點,還可以獲取一個公網地址,通過公網地址可以在家搭建NAS等。 先必須進入移動光貓的超級用戶模式,不管是電信還是聯通都有超級模式。大部分移動光貓超級用戶帳號密碼都是一致的。
  • GoF設計模式(二十):Visitor Pattern 訪問者模式
    Visitor Pattern 訪問者模式,可以算是行為型設計模式中最複雜、最難理解的一種設計模式abstract.jpeg楔子眾所周知,男人和女人在逛商店買東西時關注的點是不一樣的。System.out.println("女人看電腦關注價格: " + pc.getPrice());        }    }}至此,我們就可以寫個測試用例來驗證下/** * Demo 1: 不使用 Visitor Pattern 訪問者模式
  • 如何應用GOF設計模式中的創建型模式實現鬆耦合地創建對象實例
    軟體項目實訓及課程設計指導——如何應用GOF設計模式中的創建型模式實現鬆耦合地創建對象實例1、GOF設計模式中的工廠模式在GOF設計模式的劃分中,把與實現對象的實例化相關的模式稱之為「創建型模式」——而其中的工廠模式為創建型模式中的一種具體實現形式。
  • 設計模式之迭代器模式(Java實現)
    設計模式之迭代器模式(Java實現)迭代器模式(Iterator Pattern) :它提供一種方式訪問一個容器對象的各個元素,而又不需暴露該對象的內部細節迭代器模式是為了解決遍歷容器中的元素而產生的。先看看下面的通用類圖:
  • 設計模式之策略模式
    行為型設計模式策略模式一簡介當一個對象有多種行為要執行時,我們可以使用策略模式,讓對象自由選擇執行的行為種類,避免使用if…else if….else if…這種嵌套代碼如果我們使用策略模式,某個行為要修改代碼,我們只要修改對應行為的類,都不用動到舊代碼。後期如果要撤掉某種行為或增加某種行為,都比較方便。二例子假設系統維護裡,會發送命令:分析系統cpu使用情況,分析系統memory使用情況,分析系統io情況。後端系統執行命令後,將結果傳回前端,供界面展示結果,畫趨勢圖。
  • 設計模式之策略模式(Java實現例子說明)
    設計模式之策略模式小王在和同事正在吹牛時,領導過來了,小王啊,你又在吹牛了?別吹了,幹點正活,下周要去春遊,你給出幾種方案。小王一聽去旅遊,屁顛屁顛地去幹活了。這個其實就是一個設計模式,叫做策略模式。策略模式(Strategy Pattern):定義一組算法,將每個算法封裝起來,並且使他們之間可以互換。策略模式是一個簡單的模式也叫做政策模式。
  • 橋接還是中繼?維盟路由WDS牽橋搭線讓WiFi不要太快!
    由於WDS是通過無線網絡建立虛擬的「橋」進行連接的,因此你常會聽到有人將WDS直接稱為「無線橋接」的混淆叫法。但事實上,無線橋接只是WDS的一種常用應用模式,而另外一種常用的模式則是無線中繼模式。說到這,很多人會把中繼和橋接混為一談,因為都是連接上一級路由器達到網絡擴展的效果,對於無線用戶的實際使用也一樣,但其實它們還是有本質上的區別——無線橋接首先,無線橋接通常指的是一對一的情況,橋接兩端的無線路由器只與另一端相對的無線路由器通信,不接受其他無線設備的接入。
  • 商業模式設計方法之場景——《商業模式新生代》之十二
    #設計方法的最後一種方法——場景,其實這裡的場景不知道大家和我一樣,看起來比較彆扭,難以理解。如何設計商業模式?——《商業模式新生代》讀書筆記之七),這裡面講了一個工具——客戶移情圖,就是我們需要去思考客戶看到了什麼,聽到了什麼,感受到了什麼?有什麼痛點,有什麼期待?其實這些都有一些抽象的信息。那麼什麼是具象呢?就是把這些所有信息綜合起來放到一個「現實的虛擬人物」身上,做產品的筒子們肯定已經反應過來這是消費者畫像了。各位看官又要問了,那啥又是場景化呢?
  • 大話設計模式之愛你一萬年:第一章 設計模式基本概念:3.設計模式的六大原則
    相關歷史文章(閱讀本文前,您可能需要先看下之前的系列👇)國內最全的Spring Boot系列之三2020上半年發文匯總「值得收藏」SpringBoot框架開發的優秀的項目「值得收藏學習」 - 第3351天學會別人1個月學會的設計模式大話設計模式之愛你一萬年:第一章 設計模式基本概念:大話設計模式之愛你一萬年:第一章 設計模式基本概念:2.GoF的23種設計模式的分類和功能在設計《
  • 設計模式|觀察者模式及典型應用
    >觀察者模式觀察者模式是設計模式中的 「超級模式」,其應用隨處可見,我們以微信公眾號為例。觀察者模式包含觀察目標和觀察者兩類對象,一個目標可以有任意數目的與之相依賴的觀察者,一旦觀察目標的狀態發生改變,所有的觀察者都將得到通知。角色Subject(目標):目標又稱為主題,它是指被觀察的對象。
  • 設計模式——策略模式
    設計模式——策略模式1. 簡單工廠實現面向對象的編程,並不是類越多越好,類的劃分是為了封裝,但分類的基礎是抽象,具有相同屬性和功能的對象的抽象集合才是類。2.策略模式(Strategy):它定義了算法家族,分別封裝起來,讓它們之間可以互相替換,此模式讓算法的變化,不會影響到使用算法的客戶。
  • 精讀《設計模式 - Decorator 裝飾器模式》
    Decorator(裝飾器模式)Decorator(裝飾器模式)屬於結構型模式,是一種拓展對象額外功能的設計模式,別名 wrapper。意圖:動態地給一個對象添加一些額外的職責。就增加功能來說,Decorator 模式相比生成子類更為靈活。
  • 課程設計的模式
    課程設計需要考慮學科、學生、社會及科技發展等因素,以下為常見的課程設計模式:一、目標模式根據課程設計者對學習者行為變化的期望而確定的教育目標進行課程設計的思路。典型代表人物:泰勒該模式產生於博比特提出的「活動分析」課程設計方法,由泰勒完善,他把課程設計過程概括為確定教育目標、選擇學習經驗、組織學習經驗、評價學習結果這樣四個步驟或階段。其中,塔巴將其充實成診斷需要、形成具體的目標、選擇內容、組織內容、選擇學習經驗(活動)、組織學習經驗(活動)、評價、檢查平衡性和順序性八個階段。
  • 黑暗模式大勢所趨,盤點常見APP黑暗模式設計
    前段時候,一則「蘋果稱:微信若堅持不開發夜間模式,或面臨下架」的消息傳播網際網路,由於展開對黑暗模式的討論與探究不絕於耳,本文也以此為話題聊聊常見的APP黑暗模式設計。
  • 雙模式雷電移動硬碟:雷電/USB接口隨便插
    這類雙口方案通常使用了兩顆主控,一顆JHL6340雷電晶片可為內部SSD盤芯直接提供PCIe信號,另一顆USB-NVMe橋接晶片負責支持USB接口。由於兩個接口都是Type C外觀,所以連接時還需仔細看清了再插,數據線也千萬不要搞錯,雷電3數據線可以給USB使用,反之則不行。
  • 倪雲華:商業模式畫布-如何設計盈利模式
    往往我們在做整個商業模式的設計和創新的時候,收入和我們盈利的方式都是整個地圖當中非常核心的一塊。我們在最初講到整個商業模式的過程,我們講了如何去創造價值、交付價值以及如何去獲取我們應該有的價值。所以在現實過程當中,我們看到很多的企業也許能夠去創造一個好的價值,並且把價值交付出去。
  • 課程設計的兩種模式
    課程設計的兩種模式一、目標模式強調目標的設計,關注內部邏輯結構體系,注重操作性、條理性,重視整個學科邏輯。泰勒,美國著名的課程理論家,被譽為教育史上的「課程評價之父」。基本評價:目標模式提出並發展了一種至今最具權威的、系統化的課程設計理論,為課程設計的探究奠定了基礎。優點:①目標模式提供了可用於修改課程計劃的反饋方式;②目標模式具有較強的操作性;③目標模式把課程評價關注的焦點轉向整個課程方案。
  • trunk模式是什麼意思?ACCESS模式和TRUNK模式的區別
    四、配置TRUNK時的注意事項在一個 TRUNK 中,數據總是從一個特定的源點到目的點,一條單一的鏈路被設計去處理廣播包或不知目的地的包。在配置 TRUNK 時,必須遵循下列規則:1:正確選擇TRUNK 的埠數目,必須是 2,4 或 8.2:必須使用同一組中的埠,在交換機上的埠分成了幾個組, TRUNK 的所有埠必須來自同一組。
  • 追MM與設計模式(23種設計模式巧妙解析,趣味理解)
    「……」,MM都會用Composite模式了,你會了沒有?合成模式:合成模式將對象組織到樹結構中,可以用來描述整體與部分的關係。合成模式就是一個處理對象的樹結構的模式。合成模式把部分與整體的關係用樹結構表示出來。合成模式使得客戶端把一個個單獨的成分對象和由他們複合而成的合成對象同等看待。
  • 走向數字設計:商業模式創新
    那麼從這一講,我將結合設計行業的痛點、需求等情況,針對數字設計的五大層級逐層進行講解。 數字設計的商業模式創新,是實現數字設計的底層基礎。唯有順應數字經濟特點、創新商業模式才能給數字設計帶來更大發展空間。 那麼數字設計時代的商業模式創新是指什麼呢?