这将是一个通用的问题。组织GUI应用程序
我很努力地设计一个GUI应用程序,处理不同部分之间的相互作用。
我不知道我应该如何处理共享状态。一方面,共享状态不好,事情应尽可能明确。另一方面,没有共享状态会在组件之间引入不必要的耦合。
一个例子:
我想我的应用程序能够伸出的一个Emacs/Vim的排序的方式,通过脚本。显然,某种共享状态需要修改,以便GUI将使用它。我最初的计划是从全球各地进行全球“会议”,但我不太确定。
一个棘手的用例是键绑定。我希望用户能够从脚本指定自定义的键绑定。每个键绑定映射到一个任意的命令,它接收会话作为唯一的参数。
现在,编辑器组件捕获按键。它必须能够访问每个会话的keymappings,因此它需要访问会话。将编辑与会话耦合是一个好主意吗?其他组件也将需要访问键绑定,所以会话现在变成共享,并且可以是单身...
有没有什么好的关于设计超越MVC的GUI应用程序的阅读?
这是Python和wxPython,FWIW。
[编辑]:增加了具体的用例。