Model view controller 在桌面应用程序上用MVC实现GUI菜单
我正在用python中的MVC模式实现一个模块化AI测试引擎 到目前为止一切正常:AIs、鼠标、键盘都是控制器,模型是物理引擎,视图是渲染一切的pygame实例。我有一个事件处理程序来处理大多数通信 现在,我想实现一个菜单系统(想象一个游戏菜单,您可以在其中选择加载、保存、退出等)。但是我被阻止了,我不知道该如何实现它。问题是我认为它应该是部分控制器和部分视图,但我不确定 有什么想法吗?Model view controller 在桌面应用程序上用MVC实现GUI菜单,model-view-controller,user-interface,Model View Controller,User Interface,我正在用python中的MVC模式实现一个模块化AI测试引擎 到目前为止一切正常:AIs、鼠标、键盘都是控制器,模型是物理引擎,视图是渲染一切的pygame实例。我有一个事件处理程序来处理大多数通信 现在,我想实现一个菜单系统(想象一个游戏菜单,您可以在其中选择加载、保存、退出等)。但是我被阻止了,我不知道该如何实现它。问题是我认为它应该是部分控制器和部分视图,但我不确定 有什么想法吗? 谢谢你首先,在谈论MVC时,有几点经常被忘记: 没有模式是教条。如果最好的解决方案不是MVC,那可能意味着M
谢谢你首先,在谈论MVC时,有几点经常被忘记:
- MVC,GUI应用程序的OOD风格与MVC,web应用程序的分层体系结构有很大不同。在这种情况下,您需要第一个,那么多关于第二个的文档和文章可能不是好的建议
- 在“GUI-MVC”中,模型-视图-控制器三元组用于每个应用程序模块;没有“模型层”、“视图层”或“控制器层”
或者,整个菜单可以只是一个GUI控件;许多现有控制器中的一个。与任何GUI控件一样,它有一个可见部分。如果您的基本库足够简单,那么用于安装和管理菜单的代码可能过于简单,不足以构成复杂的内部结构。我喜欢将菜单系统作为额外模块的想法。我太受web应用程序视图的影响了。但即使在那时,我已经注意到需要具有自己的模型-视图-控制器结构的模块。我将整个应用程序划分为MVC的主要原因是,我可以在将来独立于模型层和控制器层替换一个视图。正如你在1中所说,我不应该试图强迫应用程序进入模式。谢谢你的回答。