設計模式(11)—— 結構型 ——橋接(bridge)
介紹
- 定義:將抽象部分與它的具體實現部分分離,使它們都可以獨立地變化
- 說明:通過組合的方式建立兩個類之間的聯絡,而不是繼承
- 型別:結構型
- 適用場景:
- 抽象和具體實現之間增加更多的靈活性
- 一個類存在兩個(或多個)獨立變化的維度,且這兩個(或多個)維度都需要獨立進行擴充套件
- 不希望使用繼承,或因為多繼承導致系統類的個數劇增
- 優點:
- 分離抽象部分及其具體實現部分
- 提高系統的可擴充套件性
- 符合開閉原則
- 符合合成複用原則
- 缺點:
- 增加了對系統的理解和設計難度
- 需要正確識別出系統中兩個獨立變化的維度(需要經驗積累)
- 相關設計模式
- 橋接模式和組合模式
- 橋接模式和介面卡模式
程式碼實現
這裡,有個畫筆,顏料,圖形三者類設計的實現:
借鑑它人程式碼,很容易懂。
相關推薦
設計模式(11)—— 結構型 ——橋接(bridge)
介紹 定義:將抽象部分與它的具體實現部分分離,使它們都可以獨立地變化 說明:通過組合的方式建立兩個類之間的聯絡,而不是繼承 型別:結構型 適用場景: 抽象和具體實現之間增加更多的靈活性 一個類存在兩個(或多
JAVA設計模式(07):結構型-橋接模式(Bridge)
在正式介紹橋接模式之前,我先跟大家談談兩種常見文具的區別,它們是毛筆和蠟筆。假如我們需要大中小3種型號的畫筆,能夠繪製12種不同的顏色,如果使用蠟筆,需要準備3×12 = 36支,但如果使用毛筆的話,只需要提供3種型號的毛筆,外加12個顏料盒即可,涉及到的物
設計模式-結構型- 橋接模式(Bridge)
定義 將抽象部分與它的實現部分分享,使它們都可以獨立地變化 角色 抽象角色(Abstraction):定義了抽象類的介面而且維護著一個指向實現角色的引用 具體抽象角色(RefinedAbstr
設計模式(9)—— 結構型 ——享元(Flyweight)
介紹 定義:提供了減少物件數量從而改善應用所需的物件結構的方式 說明:運用共享技術有效地支援大量細粒度的物件 型別:結構型 適用場景: 常常應用於系統底層的開發,以便解決系統的效能問題(Java中String的實現,資
設計模式(7)—— 結構型 —— 裝飾器(Decorator )
介紹 定義:在不改變原有物件基礎之上,將功能附加到物件上 說明:在擴充套件原有物件功能方面,提供了比繼承更有彈性的替代方案 型別:結構型 適用場景: 擴充套件一個類的功能或給一個類新增附加職責 動態地給一個
【設計模式筆記】結構型--橋接模式
橋接(Bridge)模式 將抽象與實現部分分離,使得他們都可以獨立的變化。又稱為介面(Interface)模式 體現了單一職責、開閉、合成複用、里氏代換、依賴倒轉原則。 如何使用: 1、識別出一個類所具有的兩個獨立變化的維度,將他們設計成兩
設計模式-結構型-橋接模式
橋接模式(Bridge): 橋接是用於把抽象化與實現化解耦,使得兩者可以獨立變化。 橋接模式的角色: 1)抽象化角色(Abstraction):它是用於定義抽象介面,通常是抽象類而不是介面,其中定義了一個Implementor(實現介面)型別的物件並可以維護該物件,它與Imp
【設計模式攻略】結構型模式之Composite模式
概要 具備一系列既有獨立功能,又需要排列組合其中的幾種功能來達成一些複合的新功能時,可以採用組合模式。比如說,你設計了一個備份模組,有email備份,note備份,message備份,log備份等一系列備份功能,而你又會需要同時備份它們中間不定的幾種時,考慮用組合模式吧。它能組合物件處理,而又不增加額外的耦
C++設計模式系列之二結構型模式
1.Adapter模式 Adapter.hpp: #ifndef _ADAPTER_HPP #define _ADAPTER_HPP //第三方庫 namespace ThirdPartyNameSpace { class ThirdPartyClass {
23種設計模式之七種結構型模式從概念介紹再到案例分析,不懂就從例子去感受
### 二、結構型模式(Structure Pattern) ##### 1.介面卡模式 將一個類的介面轉換成客戶希望的另外一個介面,使得不能相容的而能在一起工作。 (1)類的介面卡:當希望將一個類轉換成另一個新介面的類時,可以使用類的介面卡模式,建立一個新類,繼承原來的類,實現新的介面。 舉例:電腦
菜鳥版JAVA設計模式-從抽象與實現說橋接模式
橋接模式,初學的時候其實很不理解為什麼要把這個模式命名為橋接模式,腦海裡突然聯想到。其實我學習是一件比較痛苦的事情,因為我必須要知道來龍去脈才能學的進去,所以,很快我就對這個命名產生了興趣,橋接? 嗯,橋接!先把橋字換成連字,連線?橋接?橋接和連線最大的不同是橋接是降具有相
Java設計模式(7)——結構型模式之適配器模式
廠商 col err nds 類比 ref adapt extends 適配器模式 一、概述 概念 其實,舉個生活中的例子的話,適配器模式可以類比轉接頭,比如typeC和USB的轉接頭,把原本只能接typeC的接口,拓展為可以接普通USB;這裏的轉接頭一
23種設計模式介紹(二)---- 結構型模式
implement weight 代碼 介紹 定義 裝飾器模式 大量 技術分享 記憶 由於設計模式篇幅比較大,如果在一篇文章講完所有的設計模式的話不利於閱讀。於是我把它分為三篇文章 23種設計模式介紹(一)---- 創建型模式 23種設計模式介紹(二)---- 結構
設計模式(12)—— 結構型 ——代理(Proxy)
介紹 介紹:為其它物件提供一種代理,以控制對這個物件的訪問 說明:代理物件在客戶端和目標物件之間起到中介作用 適用場景: 保護目標物件 增強目標物件 優點: 將代理物件
設計模式(10)—— 結構型 ——組合(Composite )
簡介 定義:將物件組合成樹形結構以表示“部分——整體”的層次結構。 說明:組合模式使客戶端對單個物件和組合物件保持一致的處理方式 型別:結構型 適用場景 希望客戶端可以忽略組合物件與單個物件的差異時 處理一
設計模式(8)—— 結構型 ——介面卡(Adapter)
定義:將一個類的介面轉換成客戶期望的另一個介面,使原本介面不相容的類可以一起工作 型別:結構型 適用場景: 已經存在的類,它的方法和需求不匹配時(方法結果系統或者相似) 不是軟體設計階段考慮的設計模式,是隨著軟體維護,
設計模式(6)—— 結構型 ——外觀(Facade)
簡介 定義:又叫門面模式,提供一個統一的介面,用來訪問子系統中的一群介面。 解釋:外觀模式定義了一個高層介面,讓子系統更容易被使用。 型別:結構型 適用場景: 子系統越來越複雜,外觀模式能夠提供簡單的呼叫介面。
java設計模式學習筆記(二)--- 結構型模式
文章目錄 介面卡模式 組合模式 裝飾模式 代理模式 什麼時候使用代理模式 享元模式 外觀模式(門面模式) 橋樑模式 介面卡模式 介面卡是一個介面轉換器,用於在接收不同的輸入時,得到一致
設計模式簡單小例子(二)結構型模式
簡單小例子 原始碼已經上傳到了GitHub. https://github.com/tanglonghui/DesignPatterns 設計模式簡單小例子(一) 建立型模式: https://blog.csdn.net/qq_40687864/article/details/810
設計模式(十一)裝飾者模式(Decorator)-結構型
裝飾者模式Decorator 在程式開發中,有時候開發人員會使用繼承來擴充套件物件的功能,使用者的需求是多變的,也就造成了使用繼承會造成程式碼的大範圍改動,其實擴充套件物件的功能,採用組合比繼承要好的多,當用戶需要變動時,只要將物件組合發生變化就可以了,不會大