博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《精通Python设计模式》学习行为型之责任链模式
阅读量:6759 次
发布时间:2019-06-26

本文共 1406 字,大约阅读时间需要 4 分钟。

感觉是全新的学习了。

因为在以前的工作中,并没有有意识的去运用哪一种编程模式。

以后要注意的了。

这才是高手之路呀~

 

class Event:    def __init__(self, name):        self.name = name    def __str__(self):        return self.nameclass Widget:    def __init__(self, parent=None):        self.parent = parent    def handle(self, event):        handler = 'handle_{}'.format(event)        if hasattr(self, handler):            method = getattr(self, handler)            method(event)        elif self.parent:            self.parent.handle(event)        elif hasattr(self, 'handle_default'):            self.handle_default(event)class MainWindow(Widget):    def handle_close(self, event):        print('MainWindow: {}'.format(event))    def handle_default(self, event):        print('MainWindows Default: {}'.format(event))class SendDialog(Widget):    def handle_paint(self, event):       print('SendDialog : {}'.format(event))class MsgText(Widget):    def handle_down(self, event):        print('MsgText: {}'.format(event))def main():    mw = MainWindow()    sd = SendDialog(mw)    msg = MsgText(sd)    for e in ('down', 'paint', 'unhandled', 'close'):        evt = Event(e)        print('\nSending event - {} - to MainWindow'.format(evt))        mw.handle(evt)        print('\nSending event - {} - to SendDialog'.format(evt))        sd.handle(evt)        print('\nSending event - {} - to MsgText'.format(evt))        msg.handle(evt)if __name__ == '__main__':    main()

转载地址:http://hzbeo.baihongyu.com/

你可能感兴趣的文章
hdu5024(dp)
查看>>
算法-无向图(连通分量,是否有环和二分图)
查看>>
IOS runtime动态运行时一
查看>>
媒体播放器三大底层架构
查看>>
CCBValue
查看>>
C#一些知识点:委托和事件的区别
查看>>
linux修改挂载目录
查看>>
Cocos2d-js-v3.2 在 mac 上配置环境以及编译到 Andorid 的注意事项(转)
查看>>
android开源项目学习
查看>>
提升Mac os x 10.10+xcode6.1之后,Cocoapods发生故障的解决方案
查看>>
Developer Tool - 1. Text Tool and GNU/Linux Tool
查看>>
OAuth 2.0 安全案例回顾
查看>>
标准API使用小技巧
查看>>
jQuery Validate插入 reomte使用详细的说明
查看>>
科普:揭秘手机软件自启原理
查看>>
lintcode :搜索二维矩阵
查看>>
前端设计js+Tab切换可关闭+添加并自动判断是否已打开自动切换当前状态(转载)...
查看>>
for循环,如何结束多层for循环
查看>>
段树 基于单点更新 敌人阵容
查看>>
java中取得上下文路径的方法
查看>>