Python - Отдельная логика программы и код GUI? - PullRequest
13 голосов
/ 23 декабря 2010

Как лучше всего отделить логику программы от кода GUI?

Я хотел другой код GUI (GTK, KDE, CLI), используя ту же логику программы.

Я думал о том, чтобы использовать другой модуль Python (winecellar-common, winecellar-gtk, winecellar-cli), не уверен, как бы я это сделал и если это лучший способ.

* EDITED *

Просто чтобы добавить к моему вопросу, как лучше организовать структуру файлов проектов и построить платформу с различными модулями. Имейте в виду, что он в основном используется в Ubuntu.

Ответы [ 2 ]

12 голосов
/ 23 декабря 2010

Определите функции или классы для вашей бизнес-логики в одном модуле и определите свою презентацию в другом, используя эти функции для получения своей презентации.Вы должны почти полностью использовать функции и классы из основного модуля в модуле GUI.Вы должны сделать то же самое для своего CLI.Таким образом, вы можете иметь разные дистрибутивы с разными интерфейсами, и вам не придется создавать разные «логические» файлы для каждого.

В принципе, у вас есть правильная идея.Просто держите их по возможности отдельно, чтобы: а) легко поддерживать несколько интерфейсов и б) легко вносить изменения в интерфейсы.

1 голос
/ 28 декабря 2010

Возможно, шаблон "Модель-Вид-Контроллер" будет вам полезен.Есть хорошее руководство по реализации этой архитектуры с wxPython: http://wiki.wxpython.org/ModelViewController

...