码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式,外观模式(6)

时间:2018-03-08 02:35:05      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:facade   attr   类方法   cad   pattern   __init__   def   请求   int   

外观模式(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   attr   类方法   cad   pattern   __init__   def   请求   int   

原文地址:https://www.cnblogs.com/ydf0509/p/8525853.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!