Отделение уровня представления от логики приложения делает возможным!.
Вы можете разделить ваше приложение на слои, слой - это многократно используемая часть кода, которая выполняет определенную функцию.
Например, вы можете разделить приложение на два или более уровня: один с представлением приложения, а другой с моделью. Это позволяет повторно использовать всю модель приложения с различными реализациями уровня представления.
Уровень представления содержит компоненты, которые реализуют и отображают пользовательский интерфейс и управляют взаимодействием с пользователем. Этот слой включает элементы управления для ввода и отображения пользователя, в дополнение к компонентам, которые организуют взаимодействие с пользователем. Может иметь несколько реализаций технологий уровня представления, таких как PyQt4, PyGtk, Html, console и т. Д.
Почему полезно разделение моделей?
Вас может удивить, почему так важно перемещать как можно больше логики за пределы уровня представления и на уровень модели. Самая большая причина - это повторное использование: размещенная в модели логика увеличивает возможность повторного использования приложения. По мере роста приложений приложения часто превращаются в другие сферы. Приложения могут запускаться как веб-приложение, но некоторые функции могут быть позже перенесены в приложение интеллектуального клиента. Части приложения могут быть разделены между веб-сайтом и веб-службой или службой Windows, работающей на сервере. Кроме того, поддержание логики помогает в разработке хорошего дизайна (иногда код может запутаться в пользовательском интерфейсе).
Однако есть некоторые предостережения: разработка приложений занимает немного больше времени, когда большая часть логики находится на бизнес-уровне. Причина в том, что это часто включает создание нескольких наборов объектов (уровень данных и код доступа, а также бизнес-объекты), а не встраивание их в приложение. Дополнительное время, которое требуется для этого, может быть отвратительным для некоторых менеджеров и руководителей проектов, особенно потому, что для этого часто требуется, чтобы вы были хорошо осведомлены об объектно-ориентированном программировании, а это больше, чем большинству людей нравится.
Вы можете искать N-Layered архитектурный стиль в Интернете.
Это пример приложения, которое реализует несколько типов пользовательских интерфейсов, но на основе. NET Framework, для Python аналогично.
http://microsoftnlayerapp.codeplex.com/
Я работаю над большим проектом на основе платформы представления PyQt4. один из применяемых стилей архитектуры - N-Layers. Если вам нужен простой пример, основанный на PyQt4, пришлите мне электронное письмо.