門面設計模式

2021-07-11 12:04:35 字數 4432 閱讀 1461

下面就是gofo設計模式的uml設計圖

ps : 門面模式就是隱藏細節,讓對方知道更少東東。原則就是迪特公尺原則

其實說白了,看這個圖一般還是看不明白有什麼毛用。

舉例 1,比如說我們吃的,坑的雞,香村雞,我們去點乙個獅子頭雙拼,雞店暴露給我們的直接就是我們包裝好點,菜,飯,筷子。

具體的細節,比如說菜譜,菜,飯是怎麼做的。其實我們不是知道的。

2,我們天天乘坐的電梯也是,電梯暴露給我們就只是幾個按鈕。具體電梯是這麼運轉的,其實我們是不知道的。

public

class

request

implements

servletrequest

public string geturi()

private string parseuri(string requeststring)

return

null;

} //通過輸入流轉換url 這個方法是屬於request物件的,但是這個方法又不想讓外面的系統知道。

public

void

parse()

catch (ioexception e)

for (int j=0; j/* implementation of the servletrequest*/

public object getattribute(string attribute)

public enumeration getattributenames()

public string getrealpath(string path)

public requestdispatcher getrequestdispatcher(string path)

public

boolean

issecure()

public string getcharacterencoding()

public

intgetcontentlength()

public string getcontenttype()

public servletinputstream getinputstream() throws ioexception

public locale getlocale()

public enumeration getlocales()

public string getparameter(string name)

public map getparametermap()

public enumeration getparameternames()

public string getparametervalues(string parameter)

public string getprotocol()

public bufferedreader getreader() throws ioexception

public string getremoteaddr()

public string getremotehost()

public string getscheme()

public string getservername()

public

intgetserverport()

public

void

removeattribute(string attribute)

public

void

setattribute(string key, object value)

public

void

setcharacterencoding(string encoding)

throws unsupportedencodingexception

}public

class

requestfacade

implements

servletrequest

/* implementation of the servletrequest*/

public object getattribute(string attribute)

public enumeration getattributenames()

public string getrealpath(string path)

public requestdispatcher getrequestdispatcher(string path)

public

boolean

issecure()

public string getcharacterencoding()

public

intgetcontentlength()

public string getcontenttype()

public servletinputstream getinputstream() throws ioexception

public locale getlocale()

public enumeration getlocales()

public string getparameter(string name)

public map getparametermap()

public enumeration getparameternames()

public string getparametervalues(string parameter)

public string getprotocol()

public bufferedreader getreader() throws ioexception

public string getremoteaddr()

public string getremotehost()

public string getscheme()

public string getservername()

public

intgetserverport()

public

void

removeattribute(string attribute)

public

void

setattribute(string key, object value)

public

void

setcharacterencoding(string encoding)

throws unsupportedencodingexception

}public

class

servletprocessor

catch (ioexception e)

class myclass = null;

try

catch (classnotfoundexception e)

servlet servlet = null;

//這裡暴露給servlet裡的service方法,就是包裝處理過的

tomcat 的門面模式使用很多。init(servletconfig)就是包裝之後的,service(request,respone)也是包裝之後的,dofilter(request,respone) 也是包裝之後的

servletcontext也是包裝之後的。

閘道器系統就是門面模式的寫真

設計模式 門面模式

一 門面模式概述 門面模式是物件的結構模式,外部與乙個子系統的通訊必須通過乙個統一的門面物件進行。門面模式提供乙個高層次的介面,使得子系統更易於使用。1 門面角色 facade 這是門面模式的核心。它被客戶角色呼叫,因此它熟悉子系統的功能。它內部根據客戶角色已有的需求預定了幾種功能組合。2 子系統角...

設計模式 門面模式

門面模式 外觀模式 將子系統中的一組介面提供乙個一致的介面,外觀模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。1 它對客戶遮蔽子系統元件,因而減少了客戶處理的物件的數目並使得子系統使用起來更加方便。2 它實現了子系統與客戶之間的松耦合關係,而子系統內部的功能元件往往是緊耦合的。3 如果...

《設計模式》 門面模式

提供乙個門面去呼叫系統各個子模組,客戶端呼叫門面,減少客戶端與系統中各個子模組的互動,鬆散耦合,facade知道各個子模組,而各個子模組不應該知道facade的存在 客戶端也可以直接呼叫各個子模組,有外觀也可以不使用 當需要呼叫系統內部多個子模組的時候,為了避免客戶端分別呼叫子模組,提供乙個門面,讓...