2012-03-23 34 views
2

Python中的装饰图案允许用其他能够改变其行为的对象包装核心对象。还有人建议猴子补丁可以用来达到类似的效果吗?两者如何比较?何时装饰图案比用于相同任务的猴子修补更有用?装饰图案与Python中的猴子修补

回答

1

使用装饰图案和猴子修补之间的主要区别是猴子修补会导致难以调试的代码。问题是,猴子修补并没有明确显示你修改了这个类的事实:用户/读者/维护者可能会被补丁类的行为与他们期望的不同(即从原始类)的行为混淆。我会建议坚持装饰模式,代码可维护性。