说过笑话先。某人要写一个大程序,他听说装饰器模式能搞定大程序,所以他采用了。后期的维护和添加功能都很简单,结果当然是皆大欢喜。
几天后,他要写一个小程序,他简简单单的对付过去了。后期的维护和添加功能让他痛苦不已。
是不是很好笑啊!!!
装饰器模式关键字:
面向切面编程 AOP、类应该对扩展开发,对修改关闭、运行时修改类
设计模式泛泛谈:
如果说观察者是让模块间松耦合,一个模块的改动不会对程序整体造成多大的影响。装饰器模式则是立足于一个模块本身可以简单修改功能(行为功能,采用装饰器模式应该不是所有的场合都简单有效)
有种错觉,只要会搭配观察者和装饰器就可以搞定绝大部分的 python 程序设计。
Python 装饰器能做什么:
1. hook 用, 执行函数前后执行特定的代码
2. 注册用, 在函数定义时将函数名保存下来
3. 修改类的方法、添加类方法和属性
Question: python 装饰器 or metaclass 到底选择那个更好?