包裝模式群。

2021-08-28 14:33:19 字數 1065 閱讀 5141

大家有沒有發覺在很多的模式中有些角色是不幹活的?他們只是充當黔首作用,你有問題,找我,但我不處理,我讓其他人處理。最典型的就是**模式了,**角色接收請求然後傳遞到被**角色處理。門面模式也是一樣,門面角色的任務就是把請求轉化到子系統。類似這種結構的模式還有很多,我們先給這種型別的模式定義乙個名字,叫做包裝模式。注意,包裝模式是一組模式而不是乙個。包裝模式包括哪些設計模式呢?包裝模式包括:裝飾模式、介面卡模式、門面模式、**模式、橋梁模式

5個包裝模式是大家在系統設計中經常會用到的模式,他們具有相似的特徵:都是通過委託的方式對乙個物件或一系列物件(例如門面模式)施行包裝,有了包裝,設計的系統才更加靈活、穩定,並且極具擴充套件性。從實現的角度來看,他們都是**的一種具體表現形式,我們來看看他們在使用場景上有什麼區別。

**模式主要用在不希望展示乙個物件內部細節的場景中,比如乙個遠端服務不需要把遠端連線的所有細節都暴露給外部模組,通過增加乙個**類,可以很輕鬆的實現被**類的功能封裝。此外,**模式還可以用在乙個物件的訪問需要限制的場景中,比如aop。

裝飾模式是一種特殊的**模式,他倡導的是在不改變介面的前提下為物件增強功能,或者動態新增額外職責。就擴充套件性而言,他比子類更加靈活,例如在乙個已經執行的專案中,可以很輕鬆的通過增加裝飾類來擴充套件系統的功能。

介面卡模式的主要意圖是介面轉換,把乙個物件的介面轉換成系統希望的另外乙個介面,這裡的系統指的不僅僅是乙個應用,也可能是某個環境,比如通過介面轉換可以遮蔽外界介面,以免外界介面深入系統內部,從而提高系統的穩定性和可靠性。

橋梁模式是在抽象層產生耦合,解決的是自行擴充套件的問題,他可以使兩個有耦合關係的物件互不影響的擴充套件,比如對於使用筆畫圖這樣的需求,可以採用橋梁模式設計成用什麼筆(鉛筆、毛筆)畫什麼圖(圓形、方形)的方案,至於以後需求的變更,如增加筆的型別,增加圖形等,對該設計來說是小菜一碟。

門面模式是乙個粗粒度的封裝,他提供乙個方便訪問子系統的介面,不具有任何的業務邏輯,僅僅是乙個訪問複雜系統的快速通道,沒有他,子系統照樣執行,有了它,只是更方便訪問而已。

包裝模式大PK

包裝模式包括 裝飾模式 介面卡模式 門面模式 模式 橋梁模式,下面來看看這5個包裝模式的區別,用乙個追星的例子來加以說明,首先來看 模式 追星族只需要找 要簽名即可,真是的簽名仍然是明星。模式主要用在不希望展示乙個物件內部細節的場景中,比如乙個遠端服務部需要把遠端連線的所有細節都暴露給外部模組,通過...

包裝模式大PK

包裝模式包括 裝飾模式 介面卡模式 門面模式 模式 橋梁模式,下面來看看這5個包裝模式的區別,用乙個追星的例子來加以說明,首先來看 模式 追星族只需要找 要簽名即可,真是的簽名仍然是明星。模式主要用在不希望展示乙個物件內部細節的場景中,比如乙個遠端服務部需要把遠端連線的所有細節都暴露給外部模組,通過...

介面卡 Adapter 模式 包裝模式

介面卡 adapter 模式也叫包裝模式,主要有兩種實現形式 a 類介面卡模式 b 物件介面卡模式 都有三種角色 1 target 供客戶端呼叫 2 adaptee 具體呼叫角色 3 adapter 包裝角色 a 類介面卡模式 繼承 package com.pattern.adapter.class...