Ну, в моем скромном опыте я видел и использовал что-то под названием PAC :
Презентация - Абстракция - Контроль
Две основные идеи:
- Для оформления презентации (интерфейс
рендеринг / пользовательские события) из
абстракция (ваша обработка: данные
доступ, объектная модель, аппаратное обеспечение, IO,
...) с помощью контроллера, который
управлять связью между этими двумя
частей.
- Для управления иерархическим деревом
агенты, где агент является
Презентационный модуль, Абстракция
Модуль и модуль контроллера.
В конкретной реализации модули Presentation преобразуют низкоуровневое событие пользовательского интерфейса в события приложения, контроллер управляет потоком событий на более высокий уровень. Некоторые события отправляются менеджеру, который отправляет их в обрабатывающую часть приложения (абстракция).
Таким образом:
- Часть пользовательского интерфейса четко отделена от
часть обработки / абстракции.
Вы можете изменить пользовательский интерфейс, использовать графический интерфейс и
текстовый интерфейс, интерфейс команд TCP / IP, ...
- Иерархическая организация UI
агенты сопоставляются с вашими элементами пользовательского интерфейса, которые
Вы можете использовать во многих разных
приложения.
Конечно, используется множество других шаблонов, но эта основная архитектура является ключом для повторного использования модулей пользовательского интерфейса и, конечно, модулей обработки / бизнеса.
РЕДАКТИРОВАТЬ:
Я получил отличную статью об архитектуре пользовательского интерфейса, сравнивающую различные типы архитектуры, включая PAC:
необходимо прочитать для пользовательского интерфейса / архитектора приложений