外觀模式(facade pattern)隱藏系統的複雜性,並向客戶端提供了乙個客戶端可以訪問系統的介面。這種型別的設計模式屬於結構型模式,它向現有的系統新增乙個介面,來隱藏系統的複雜性。
這種模式涉及到乙個單一的類,該類提供了客戶端請求的簡化方法和對現有系統類方法的委託呼叫。
class a():def run(self):
print 'a run'
def jump(self):
print 'a jump'
class b():
def run(self):
print 'b run'
def jump(self):
print 'b jump'
class c():
def run(self):
print 'c run'
def jump(self):
print 'c jump'
class facade():
def __init__(self):
self.a=a()
self.b=b()
self.c=c()
def run(self):
for item in ('a','b','c'):
getattr(self,item).run()
def jump(self):
for item in ('a','b','c'):
getattr(self,item).jump()
if __name__=='__main__':
facade=facade()
facade.run()
facade.jump()
a b c的關係是他們看起來是鴨子型別,不管他們3個有沒有共同的抽象基類或者實現相同的介面,但他們的都有相同的公用方法名。
設計模式 結構型模式,外觀模式(6)
外觀模式 facade pattern 隱藏系統的複雜性,並向客戶端提供了乙個客戶端可以訪問系統的介面。這種型別的設計模式屬於結構型模式,它向現有的系統新增乙個介面,來隱藏系統的複雜性。這種模式涉及到乙個單一的類,該類提供了客戶端請求的簡化方法和對現有系統類方法的委託呼叫。class a def r...
設計模式 結構型模式 外觀模式
粗淺地理解,外觀模式的核心思想就是把分散的方法集中到乙個方法a裡呼叫,外部只需要呼叫a方法就可以把所有的方法都跑一遍,簡單省事。例如上圖的病人看病流程。假設有guahao menzhen huajia quyao 4個方法,如果沒有外觀模式,100個地方用到這個流程,四個方法每個都要各寫100遍呼叫...
設計模式 結構型模式 外觀模式
組建乙個家庭影院 傳 統方式解決影院管理 clienttest 傳統方式解決影院管理問題分析 1 在clienttest 的main方法中,建立各個子系統的物件,並直接去呼叫子系統 物件 相關方法,會造成呼叫過程混亂,沒有清晰的過程 2 不利於在clienttest 中,去維護對子系統的操作 3 解...