我正在编写一个实验性的GUI框架。 GUI是通过组合组件(类似于小部件)构建的。有一些“原生”类组件。框架用户通过提供定义配置,绑定等的某些方法来专门化。这可以通过扩展本机类并重写其方法来完成,这很好,但许多派生类只会被实例化一次。或者,我可以提供一个工厂函数,它将采用本机类和专门化方法(函数,真的)。此函数将实例化本机类并替换适当的方法。有理由偏好一种方法吗?
答案 0 :(得分:2)
Monkey patch不是一个真正的设计模式,更像是被过度使用的黑客导致意大利面条代码。
作为猴子修补方案,您可能想要的是adapters或aspect-oriented programming。
答案 1 :(得分:0)
python中大多数GUI工具包(wxpython,kivy,pyQT)正在做的是继承方法。
我想这两种方法都应该有效,但使用继承对潜在用户来说会更为熟悉
你可能还想看一下模板语言(很糟糕的是kv lang或html) UI布局,因为它是一种现代方法