設計模式 結構型模式,外觀模式(6)

2022-03-27 17:32:56 字數 928 閱讀 8153

外觀模式(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 解...