解釋說明:
基本上每個軟體系統都會用到的模式,其含義是為子系統中的一組介面提供乙個一致的介面, 模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。簡單說,就是將複雜的邏輯封裝起來,對外公開簡單的介面,由客戶程式呼叫。
以收發信件和警察檢查例項為例
說明:郵局對外只有乙個視窗,接收信件內容和郵件位址。對內呼叫郵件處理的4個函式。將複雜邏輯封裝在郵局的裡面,當需要增加警察來檢查信件時,只需在郵局內增加警察檢查信件的方法。
注意:將複雜邏輯封裝起來,對外只有乙個簡單的介面。
例子:訊號處理過程。
cmodenpostoffice封裝了複雜的處理邏輯,對外只有sendletter這個函式介面。使客戶程式容易了解到想要做什麼,應該告訴郵局什麼內容,郵局才能正確的工作。
m/wanggary/category/294620.html#include using namespace std;
//對內呼叫郵件處理的4個函式。將複雜邏輯封裝在郵局的裡面,
//當需要增加警察來檢查信件時,只需在郵局內增加警察檢查信件的方法。
//注意:將複雜邏輯封裝起來,對外只有乙個簡單的介面。
//抽象信件處理類
class iletterprocess
virtual ~iletterprocess(){}
virtual void writecontext(string context) = 0;
virtual void fillenvelope(string address) = 0;
virtual void letterintoenvelope() = 0;
virtual void sendletter() = 0;
};//信件處理實現類
class cletterprocessimpl :public iletterprocess
~cletterprocessimpl(){}
void writecontext(string context)
void fillenvelope(string address)
void letterintoenvelope()
void sendletter() };
//警察檢查信件類
class cletterpolice
~cletterpolice(){}
void checkletter(iletterprocess* pletterprocess) };
//郵局處理信件類
class cmodenpostoffice
~cmodenpostoffice()
void sendletter(string context, string address)
private:
iletterprocess* m_pletterprocess;
cletterpolice* m_pletterpolice;
};void doitbypostoffice()
void doityourself()
int main()
設計模式 門面模式
一 門面模式概述 門面模式是物件的結構模式,外部與乙個子系統的通訊必須通過乙個統一的門面物件進行。門面模式提供乙個高層次的介面,使得子系統更易於使用。1 門面角色 facade 這是門面模式的核心。它被客戶角色呼叫,因此它熟悉子系統的功能。它內部根據客戶角色已有的需求預定了幾種功能組合。2 子系統角...
設計模式 門面模式
門面模式 外觀模式 將子系統中的一組介面提供乙個一致的介面,外觀模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。1 它對客戶遮蔽子系統元件,因而減少了客戶處理的物件的數目並使得子系統使用起來更加方便。2 它實現了子系統與客戶之間的松耦合關係,而子系統內部的功能元件往往是緊耦合的。3 如果...
《設計模式》 門面模式
提供乙個門面去呼叫系統各個子模組,客戶端呼叫門面,減少客戶端與系統中各個子模組的互動,鬆散耦合,facade知道各個子模組,而各個子模組不應該知道facade的存在 客戶端也可以直接呼叫各個子模組,有外觀也可以不使用 當需要呼叫系統內部多個子模組的時候,為了避免客戶端分別呼叫子模組,提供乙個門面,讓...