zoukankan      html  css  js  c++  java
  • 设计模式-结构型模式,外观模式(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个有没有共同的抽象基类或者实现相同的接口,但他们的都有相同的公用方法名。

  • 相关阅读:
    https://blog.csdn.net/nameofcsdn/article/details/53164652
    洛谷
    模板
    模板
    Gym 101911E "Painting the Fence"(线段树区间更新+双端队列)
    Gym 101911F “Tickets”
    图论:最小瓶颈生成树
    图论:次小生成树
    图论:费用流-SPFA+EK
    图论:Dinic算法
  • 原文地址:https://www.cnblogs.com/ydf0509/p/8525853.html
Copyright © 2011-2022 走看看