Monkey补丁与Python中的继承和重写



我正在编写一个实验性GUI框架。GUI是通过组合组件(类似于小部件)来构建的。有一些"本机"组件类。框架用户专门提供定义配置、绑定等的某些方法。这可以通过扩展本机类并覆盖其方法来实现,这很好,但许多派生类只会实例化一次。或者,我可以提供一个工厂函数,它将采用本机类和专门化的方法(实际上是函数)。此函数将实例化本机类并替换适当的方法。有什么理由更喜欢一种方法而不是另一种方法吗?

Monkey补丁不是一个真正的设计模式,更像是一个被过度使用导致意大利面条代码的黑客。

您可能想要的猴子补丁替代方案是适配器或面向方面的编程。

python中的大多数GUI工具包(wxpython、kivy、pyQT)所做的是继承方法。

我想这两种方法都应该有效,但使用继承对您的潜在用户来说会更熟悉

你可能还想看看模板语言(比如kv-lang或html)布局UI,因为这是一种现代方法

最新更新