Python - 如何将程序逻辑与GUI代码分离?
怎样才能把程序的逻辑和界面代码分开写得更好呢?
我想用相同的程序逻辑来写不同的界面,比如GTK、KDE和命令行界面(CLI)。
我在考虑用不同的Python模块,比如winecellar-common、winecellar-gtk和winecellar-cli,但我不太确定这样做是否合适,也不知道该怎么实现。
*补充说明*
我还想问一下,如何才能把项目的文件结构和构建平台组织得更好,尤其是用到不同的模块。请注意,这个主要是在Ubuntu上使用。
2 个回答
3
也许“模型-视图-控制器”这种设计模式对你会有帮助。这里有一个关于如何用wxPython实现这种架构的不错教程:http://wiki.wxpython.org/ModelViewController
12
在一个模块里定义你的业务逻辑的函数或类,在另一个模块里定义你的展示部分,使用这些函数来获取你的展示内容。你在图形用户界面(GUI)模块里几乎应该完全使用主模块里的函数和类。命令行界面(CLI)也是这样做。这样一来,你就可以有不同的版本,使用不同的界面,而不需要为每个版本都创建一个不同的“逻辑”文件。
总的来说,你的想法是对的。只要尽量把它们分开,这样一来:a.) 你可以轻松支持多种界面,b.) 你也能轻松修改这些界面。