面模式(facade pattern),又稱外觀模式,為子系統中的一組介面提供乙個一致的介面, facade 模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。簡而言之,就是把一堆複雜的流程封裝成乙個介面供給使用者更簡單的使用,這個設計模式裡有三個角色:
1)門面角色( facade ):這是門面模式的核心。它被客戶角色呼叫,因此它熟悉子系統的功能。它內部根據客戶角色已有的需求預定了幾種功能組合。
2)子系統角色(subsystem):實現了子系統的功能。對它而言, façade 角色就和客戶角色一樣是未知的,它沒有任何 façade 角色的資訊和鏈結。
3)客戶角色:呼叫 façade 角色來完成要得到的功能。
乙個普通的小案例:
子系統及門面類
package sjms.mm.******;
public
class fade
public
void
testb()
public
void
testc()
}class a
}class b
}class c
}
測試
package sjms.mm.******;
public
class clinet
}
再來個形象的案例吧,我們去旅遊定乙個旅館:
子系統有餐廳,打掃衛生,開房,泡溫泉等等,乙個門面類前台
package sjms.mm.complex;
public
class hotelfade
public
void
servicefood()
public
void
serviceclean()
public
void
serviceroom()
}class servicefood
}class serviceclean
}class serviceroom
}
客戶端測試:
package sjms.mm.complex;
public
class clinet
}
java設計模式之門面模式
顧名思義 就如同現實世界中的商店,衣服店等門面一樣.我們只需要把錢給人家,拿到自己需要的東西.對於這個商品從 來,又是怎麼造出來的我們大不必要關係,我們只需要關心這個東西好用不用,實用不實用.我們就拿過去經常使用的寫信來舉個例子,首先看圖如下 如下 package com.pattern publi...
JAVA設計模式之門面模式(外觀模式)
現代的軟體系統都是比較複雜的,設計師處理複雜系統的乙個常見方法便是將其 分而治之 把乙個系統劃分為幾個較小的子系統。如果把醫院作為乙個子系統,按照部門職能,這個系統可以劃分為 門診 劃價 化驗 收費 取藥等。看病的病人要與這些部門打交道,就如同乙個子系統的客戶端與乙個子系統的各個類打交道一樣,不是一...
設計模式之門面模式
coding gbk coding utf 8 author edgar 這是門面模式的乙個應用場景。具體故事情節請見 設計模式之禪 門面模式把一套方法封裝起來,使用者不需要知道具體的實現細節。class letterprocessimpl object def writecontext self,...