結構型模式(一)
6、adapter 介面卡
別名wrapper ,將一些介面不統一的類包裝成統一的介面
target req() adaptee other_req()
|_______________|
|
adapter req()->other_req()
target的req()是對外的介面,adptee的other_req()是待匹配的介面
優缺點:
對外介面更加統一
子類重定義adaptee的行為比較困難,需要adapter指向adaptee的子類
7、birdge 橋接
在抽象類裡儲存一個imp類的指標,在呼叫抽象類方法時,實際呼叫imp類的方法
abstraction-opt()
opt() {imp->opt()}------------------------imp-opt()
優缺點:
跟抽象工廠有一些區別,橋接能使介面和實現不是繼承的關係
提高可擴充性
8、composite 組合
將功能類似的類整合起來,儲存到composite類裡,可遍歷呼叫
component <----
| |
|------| |
leaf compsite -| 含有component的指標
優缺點:
簡化程式碼,使用者可以統一使用compsite無需關心leaf的個數
將component暴露給使用者,leaf和compsite可重新定義而不影響使用者
9、decorator 裝飾器
別名wrapper,子類繼承父類的介面,並儲存父類的指標,負責對父類操作進行裝飾
component
|
|-----------|
concrete comonent decorator
|
|--------|
boder dec scroll dec decotor::draw(); drawScroll();
例:
concrete comonent * p = new concrete comonent; // 原始的零件
concrete comonent * p1 = new border_dec(p);// 裝飾後的零件
比較:
adaptor的包裹是統一介面,decorator的包裹是新增裝飾,介面本來就是一致的。
compsite不改變原來leaf的類,decorator對原來的零件做了一些改變
優缺點:
比靜態繼承更靈活,如果又5種零件,2種裝飾,靜態繼承需要2*5個類,裝飾器需要2+5個類
用例:
MFC等
相關推薦
結構型模式(一)
6、adapter 介面卡 別名wrapper ,將一些介面不統一的類包裝成統一的介面 target req() adaptee other_req() |_______________|
Java設計模式之結構型模式(一)
在解決了物件的建立問題之後,物件的組成以及物件之間的依賴關係就成了開發人員關注的焦點,因為如何設計物件的結構、繼承和依賴關係會影響到後續程式的維護性、程式碼的健壯性、耦合性等。 一、介面卡模式(Adapter) 介面卡模式是指“將一個類的介面轉換成客戶希
Java學習--設計模式之結構型模式(二)
and 它的 null spa bubuko imp AD mco flyweight 一、裝飾器模式(Decorator Pattern) 1、概念 裝飾器模式(Decorator Pattern)允許向一個現有的對象添加新的功能,同時又不改變其結構。這種類
結構型模式(二)
10、facade 外觀 將一系列子系統封裝成一個呼叫介面 編譯(){ 預處理() 語法分析() .... } 類似builde
結構型模式(2)
6、ADAPTER —在朋友聚會上碰到了一個美女Sarah,從香港來的,可我不會說粵語,她不會說普通話,只好求助於我的朋友kent了,他作為我和Sarah之間的Adapter,讓我和Sarah可以相互交談了(也不知道他會不會耍我) 介面卡模式:把一個類的介面變換成客戶端所期
建立型模式(一)、單例設計模式-Singleton
目錄 1. 常見使用場景和優點 1.1 使用場景 專案中的配置檔案,讀取配置檔案的類, 一般也只有一個対象沒有必要每次使用配置檔案數握 , 每次new一個物件去讀取 資料庫的連線池 Spring的bean配置預設是單例 SpringMVC和
Java設計模式(一)之建立型模式:工廠模式(簡單工廠模式+工廠方法模式)
在面向物件程式設計中, 最通常的方法是一個new操作符產生一個物件例項,new操作符就是用來構造物件例項的。但是在一些情況下, new操作符直接生成物件會帶來一些問題。舉例來說,許多型別物件的建立需要一系列的步驟:你可能需要計算或取得物件的初始位置;選擇生成哪個子物件例項;或在你生成你需要的物件
不相容結構的協調——介面卡模式(一)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
設計模式(12)—— 結構型 ——代理(Proxy)
介紹 介紹:為其它物件提供一種代理,以控制對這個物件的訪問 說明:代理物件在客戶端和目標物件之間起到中介作用 適用場景: 保護目標物件 增強目標物件 優點: 將代理物件
設計模式(10)—— 結構型 ——組合(Composite )
簡介 定義:將物件組合成樹形結構以表示“部分——整體”的層次結構。 說明:組合模式使客戶端對單個物件和組合物件保持一致的處理方式 型別:結構型 適用場景 希望客戶端可以忽略組合物件與單個物件的差異時 處理一
設計模式(8)—— 結構型 ——介面卡(Adapter)
定義:將一個類的介面轉換成客戶期望的另一個介面,使原本介面不相容的類可以一起工作 型別:結構型 適用場景: 已經存在的類,它的方法和需求不匹配時(方法結果系統或者相似) 不是軟體設計階段考慮的設計模式,是隨著軟體維護,
設計模式(6)—— 結構型 ——外觀(Facade)
簡介 定義:又叫門面模式,提供一個統一的介面,用來訪問子系統中的一群介面。 解釋:外觀模式定義了一個高層介面,讓子系統更容易被使用。 型別:結構型 適用場景: 子系統越來越複雜,外觀模式能夠提供簡單的呼叫介面。
面向物件設計的設計模式(二):結構型模式(附 Demo & UML類圖)
本篇是面向物件設計系列文章的第三篇,講解的是設計模式中的結構型模式: 外觀模式 介面卡模式 橋接模式 代理模式 裝飾者模式 享元模式 該系列前面的兩篇文章: 面向物件設計的六大設計原則(附 Demo 及 UML 類圖) 面向物件設計的設計模式(一):建
C++設計模式(一)——建立型模式
設計模式指導我們怎樣去建立、維護、分配面向物件系統中的實體類, 以獲得高內聚、低耦合的面向物件系統,從而提高系統的可維護性和可複用性。設計模式是OO的一些設計思想的一個總結(但不是全部),因此設計模式和OO的設計原則經驗沒有矛盾,而是殊
java設計模式(一)建立型模式之 單例模式(餓漢式,懶漢式,執行緒安全,雙重檢查)
1.介紹 單例模式是一種常用的軟體設計模式,其定義是單例物件的類只能允許一個例項存在。 2.實現思路與步驟 1).將該類的構造方法定義為私有方法,這樣其他處的程式碼就無法通過呼叫該類的構造方法來例項化該類的物件,只有通過該類提供的靜態
設計模式(一)工廠模式Factory(建立型)
在面向物件程式設計中, 最通常的方法是一個new操作符產生一個物件例項,new操作符就是用來構造物件例項的。但是在一些情況下, new操作符直接生成物件會帶來一些問題。舉例來說, 許多型別物件的創造需要一系列的步驟: 你可能需要計算或取得物件的初始
樹形結構的處理——組合模式(一)
樹形結構在軟體中隨處可見,例如作業系統中的目錄結構、應用軟體中的選單、辦公系統中的公司組織結構等等,如何運用面向物件的方式來處理這種樹形結構是組合模式需要解決的問題,組合模式通過一種巧妙的設計方案使得使用者可以一致性地處理整個樹形結構或者樹形結構的一部分,也可以一
設計模式(一)之建立型模式
概述 設計模式(Design pattern)是一套被反覆使用的、多數人知曉的、經過分類編碼的、程式碼設計經驗的總結。使用設計模式是為了可重用程式碼、讓程式碼更容易被他人理解、保證程式碼可靠性。 毫無疑問,設計模式於己於他人於系統都是多贏的,設計模式使程式碼編
設計模式彙總:結構型模型(下)
總體來說設計模式分為三大類: 建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。 結構型模式,共七種:介面卡模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享
簡談設計模式(一)——建立型模式
作為程式編寫技術的一個常見術語,以及技術筆試與面試的常考點,這裡總結一下設計模式的相關知識。 本文的程式碼實現均為Java。 什麼是設計模式 先看一些描述: 在軟體工程中,設計模式(design pattern)是對軟體設計中普遍存在(反覆