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


外觀模式(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個有沒有共同的抽象基類或者實現相同的接口,但他們的都有相同的公用方法名。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM