今天要介紹的模式是屬於結構型模式的一種,我個人覺得他還蠻簡單的,有點像是程式碼中的主要窗口,現在就來看看它會做哪些事吧!
Facade,顧名思義它就是建築物的表面,而在程式中,就是我上面所講的使用者窗口,即使我們對窗口後面的運作情況一無所知,但我們還是可以透過這個窗口來做許多事情。
舉個例子,當我們在電商平台下訂單時,如果有甚麼需求或是需要協助的地方,通常我們就會撥打客服電話來解決我們的問題,而客服就是電商平台的窗口,不管是要了解訂單的出貨情況,還是想更換商品需求,抑或是要取消訂單等等,客服就可以解決在電商平台可能會碰到的大小事。
上面所說的客服就是一個類別,它包含了電商平台大多數的服務(Model),並且提供了對外使用者的窗口,如此一來,就可以讓使用者從其去處理在電商平台所遇到的問題。
class SubObject {
public void operation() {
// do something
}
}
.
.
.
class Facade {
private SubObject subObject;
public void subObjectOperation() {
// invoke SubObject to work
subObject = new SubObject();
subObject.operation();
}
// It may have many object to do different things.
}
通常子系統會隨著時間的推移變得越來越複雜,即使應用設計模式也會創造許多類別在系統上面。當遇到這樣的問題,我們就可以運用Facade來做為複雜系統功能的窗口,解決使用者在系統上遇到的情境與提供需要的功能。
除此之外,也歡迎大家走走逛逛關於我們團隊夥伴的文章
juck30808 - Python - 數位行銷分析與 Youtube API 教學
SiQing47 - 前端?後端?你早晚都要全端的,何不從現在開始?