专栏首页nummy外观模式

外观模式

外观模式(Facade),为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。外观模式通过提供一个更为简单的接口来隐藏内部系统的复杂性。

class Leg(object):
    def __init__(self, name):
        self.name = name

    def forward(self):
        print self.name

class WalkingDrone(object):
    def __init__(self, name):
        self.name = name
        self.frontrightleg = Leg('Front Right Leg')
        self.frontleftleg = Leg('Front Left Leg')
        self.backrightleg = Leg('Back Right Leg')
        self.backleftleg = Leg('Back Left Leg')

    def walk(self):
        print "\nmoving "
        self.frontrightleg.forward()
        self.backleftleg.forward()
        print "\nmoving "
        self.frontleftleg.forward()
        self.backrightleg.forward()

    def run(self):
        print "\nmoving "
        self.frontrightleg.forward()
        self.frontleftleg.forward()
        print "\nmoving "
        self.backrightleg.forward()
        self.backleftleg.forward()

wd = WalkingDrone("RoboDrone" )
print("\nwalking")
wd.walk()
print("\nrunning")
wd.run()

上面的例子中WalkingDrone类隐藏了Leg类的复杂同步操作,提供了一个更为简单的接口。

输出为:

walking

moving
Front Right Leg
Back Left Leg

moving
Front Left Leg
Back Right Leg

running

moving
Front Right Leg
Front Left Leg

moving
Back Right Leg
Back Left Leg

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《eloquent javascript》 notes1

    There is only one value in JavaScript that is not equal to itself, and that is N...

    用户2936342
  • 命令模式

    用户2936342
  • Python 弱引用的使用

    和许多其它的高级语言一样,Python使用了垃圾回收器来自动销毁那些不再使用的对象。每个对象都有一个引用计数,当这个引用计数为0时Python能够安全地销毁这个...

    用户2936342
  • Python基础语法(2)

    一、控制流 1. if 语句 i = 10 n = int(raw_input("enter a number:")) if n == i: pri...

    昱良
  • Python进阶学习之阅读代码

    起因 最近在公司的任务是写一些简单的运营工具,因为是很小的工具,所以就用了github上面的一个开源项目flask-admin,可以省去很多的事情。 但是,这个...

    CDA数据分析师
  • Python极简入门:数据类型、条件语句、循环语句、异常处理

    https://blog.csdn.net/weixin_37777526/article/details/108427112

    统计学家
  • 三大结构-分支

    DataScience
  • 虚幻引擎中的节流与防抖

    最近研究虚幻引擎(Unreal Engine,UE),打算从Web开发转型成游戏开发。日后会不定期发布和游戏开发相关的经验总结,由浅入深。

    Jean
  • python ping 判断主机是否连通

    py3study
  • Python类

    Python是一门面向对象的语言,对于面向对象语言来说,最重要的概念就是类(Class)和实例(Intance),所以python在创建一个类或者一个对象是很容...

    py3study

扫码关注云+社区

领取腾讯云代金券