我正致力于根据 mvc 优化我的设计,旨在简化视图的api,即使Iv构建了复合小部件(有自己的事件和/ pubsub消息),它也是非常嵌套的试图简化事情。
例如,我有一个主顶级gui类和一个wxFrame,它有许多小部件,包括一个笔记本,笔记本包含许多标签,其中一些是包含复合小部件的笔记本。因此,要从控制器中调用其中一个复合小部件的方法,我会有
self.gui.nb.sub_nb.composite_widget.method()
要为视图创建合适的抽象,我在视图中创建了对这些窗口小部件(其方法需要在控制器中调用)的引用,如此
self.composite_widget = self.nb.sub_nb.composite_widget()
这样在控制器中呼叫现在简化为
self.gui.composite_widget.method()
这是为gui创建抽象层的可接受方式吗?
答案 0 :(得分:1)
嗯,这绝对是处理这个问题的一种方法。我倾向于使用pubsub以旧式的方式调用方法。有些人喜欢pyDispatcher比pubsub更好。使用多点方法调用的主要问题是,如果必须更改方法名称,则很难调试。