設計模式總結之Facade Pattern(外觀模式)
目錄
建立型設計模式:
結構型設計模式:
行為型設計模式:
Facade Pattern(外觀模式)
意圖
為子系統中的一組介面提供一個一致的介面,Facade模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。適用性
* 當你要為一個複雜子系統提供一個簡單介面時。子系統往往因為不斷演化而變得越來越複雜。大多數模式使用時都會產生更多更小的類。這使得子系統更具可重用性, 也更容易對子系統進行定製,但這也給那些不需要定製子系統的使用者帶來一些使用上的困難。Facade可以提供一個簡單的預設檢視,這一檢視對大多數使用者來 說已經足夠,而那些需要更多的可定製性的使用者可以越過Facade層。* 客戶程式與抽象類的實現部分之間存在著很大的依賴性。引入Facade將這個子系統與客戶以及其他的子系統分離,可以提高子系統的獨立性和可移植性。
* 當你需要構建一個層次結構的子系統時,使用門面模式定義子系統中每層的入口點。如果子系統之間是相互依賴的,你可以讓它們僅通過Facade進行通訊,從而簡化了它們之間的依賴關係。
結構
Facade
這個外觀類為子系統提供一個共同的對外介面
Clients
客戶物件通過一個外觀介面讀寫子系統中各介面的資料資源。
例子
相關推薦
設計模式總結之Facade Pattern(外觀模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Facade Pattern(外觀模式) 意圖 為子系統中的一組介面提供一個一致的介面,Facade模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。適用性 * 當你要為一個複雜子系統提供一個簡單介
設計模式總結之Proxy Pattern(代理模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Proxy Pattern(代理模式) 意圖 為其他物件提供一種代理以控制對這個物件的訪問。適用性 在需要用比較通用和複雜的物件指標代替簡單的指標的時候,使用Proxy模式。下面是一些可以使用Proxy模式常
設計模式總結之Visitor Pattern(訪問者模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Visitor Pattern(訪問者模式) 意圖 表示一個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。適用性 * 一個物件結構包含很多類物件,它們有不同的
設計模式總結之Adapter Pattern(介面卡模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Adapter Pattern(介面卡模式) 意圖 將一個類的介面轉換成另外一個客戶希望的介面。Adapter 模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。 注:介面卡模式在詳細設計階段不需
設計模式總結之Prototype Pattern(原型模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Prototype Pattern(原型模式) 意圖 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。適用性 •當要例項化的類是在執行時刻指定時,例如,通過動態裝載; •為了避免建立一個與產
設計模式總結之TemplateMethod Pattern(模版方法模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: TemplateMethod Pattern(模版方法模式) 意圖 定義一個操作中的演算法的骨架,而將一些步驟延遲到子類中。Template Method使得子類可以不改變一個演算法的結構即可重定義該演算法的
設計模式總結之Iterator Pattern(迭代器模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Iterator Pattern(迭代器模式) 意圖 提供一種方法順序訪問一個聚合物件中各個元素, 而又不需暴露該物件的內部表示。適用性 1. 訪問一個聚合物件的內容而無需暴露它的內部表示。 2. 支援對聚合
設計模式總結之Builder Pattern(建造者模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Builder Pattern(建造者模式) 意圖 將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。適用性 * 當建立複雜物件的演算法應該獨立於該物件的組成部分以及它們的裝配方式時。
設計模式總結之Flyweight Pattern(享元模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Flyweight Pattern(享元模式) 意圖 運用共享技術有效地支援大量細粒度的物件。適用性 當以下所有的條件都滿足時,可以考慮使用享元模式: * 一個應用程式使用了大量的物件。 * 完全由於使用大量
設計模式總結之Bridge Pattern(橋接模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Bridge Pattern(橋接模式) 意圖 將抽象部分與它的實現部分分離,使它們都可以獨立地變化。 【GOF95】在提出橋樑模式的時候指出,橋樑模式的用意是"將抽象化(Abstraction)與實現化(I
java設計模式之Composite Pattern(組合模式)
In ima field 編程 這也 composite 當前 屬性 OS 組合模式是面向可維護性編程的一種常見的設計模式。簡單的說就是一個類裏面有一組當前類組成的collection作為這個類的屬性。這和遞歸有一定的相似。他的目的就是在同類型對象之間建立起樹形層次結構,一
【java設計模式】之 模板方法(Template Method)模式
1. 模板方法的一個例項 這一節主要來學習一下設計模式中的模板方法模式。我們先來看一個例子:假如現在老闆讓你做一個汽車的模型,要求只要完成基本功能即可,不考慮擴充套件性,那你會怎麼做呢?我們首先會根據經驗設計一個類圖: 由這個類圖可知,非
【設計模式】之模板方法(Template Method)
模板方法的定義為:再一個操作中定義一個演算法的骨架,將演算法中的一些步驟延遲到子類去實現。模板方法允許子類在不該變演算法結構的情況下重新定義演算法的某些步驟。 Define the skeleton of an algorithm in an operation, defe
node總結之工具模組(Domain 模組)
Node.js Domain(域) 簡化非同步程式碼的異常處理,可以捕捉處理try catch無法捕捉的異常,來看下引入 Domain 模組的語法格式: var domain = require("domain") domain模組,把處理多個不同的IO的操作作為一個組。註冊事件和回撥到
node總結之工具模組(Net 模組)
Node.js Net 模組提供了一些用於底層的網路通訊的小工具,包含了建立伺服器/客戶端的方法,來看下引入該模組的語法格式: var net = require("net") 來看下net模組中的方法: 序號 方法 & 描述
node總結之工具模組(Path 模組)
Node.js path 模組提供了一些用於處理檔案路徑的小工具,來看下引入該模組的語法格式: var path = require("path") 來看下方法: 序號 方法 & 描述 1 path.nor
node總結之工具模組(OS 模組)
Node.js os 模組提供了一些基本的系統操作函式,來看下引入該模組的語法格式: var os = require("os") 來看下其中包含的方法: 序號 方法 & 描述 1 os.tmpdir()
node總結之工具模組(DNS 模組)
Node.js DNS 模組用於解析域名,來看下引入 DNS 模組的語法格式: var dns = require("dns") 來看下dns模組中包含的方法: 序號 方法 & 描述 1 dns.looku
設計模式總結之Factory Method Pattern(工廠方法模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Simple Factory Pattern(簡單工廠模式) GoF中認為簡單工廠模式是工廠方法的一個特例。 結構 例子 優缺點 優點: 優點: 簡單,結合單例模式更加方便和節省資源。 缺點: 增加新的
設計模式總結之Abstruct Factory Pattern(抽象工廠模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Abstruct Factory Pattern(抽象工廠模式) 意圖 提供一個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。 適用性 •一個系統要獨立於它的產品的建立、組合和表示時。 •一