Одна из величайших функций Qooxdoo - сильная система класса OO, так что действительно шаблон, который вы используете, зависит от вас - MVC, MVVC и т. Д. Все это возможно, поскольку система OO Qooxdoo предоставляет вам инструменты для реализации вашего предпочтительного шаблона (с).
Один шаблон, который мне очень пригодится, особенно для создания более крупных приложений, заключается в определении пользовательских виджетов для редактирования моделей; например, если у вас есть модели (так называемый «Business Objects» и т.д.) для Customer
, Invoice
, InvoiceLine
и Address
, имеющий виджет CustomerEditor
, InvoiceEditor
, InvoiceLineEditor
и т.д. действительно полезно, во-первых, потому что он инкапсулирует код, но и потому, что он поддерживает переплет.
Связывание - очень мощная функция Qooxdoo - чтобы понять, почему, давайте предположим на мгновение, что каждый из виджета Editor имеет свойство, называемое value
, которое редактируется.
В простых привязках, ваш редактор может связать свойство модели с виджетами, которые отображают и редактировать эти свойства, например CustomerEditor
связывают value.firstName
и value.lastName
на пару qx.ui.form.TextField
и автоматически изменяется на клиент firstName
или lastName
будет обновлен два текстовых поля. Связывание может работать и наоборот, так что изменения в TextField будут скопированы обратно в модель.
Существует класс контроллера, называемый qx.data.controller.Form
, который может упростить его выполнение и, возможно, включать проверку пользовательских значений и отзывов пользователей.
Если у вас есть отдельные виджеты Editor, вы можете также связываться с ними - например, Customer
мог связать value.address
к экземпляру AddressEditor
и InvoiceEditor
мог связать выбранный в настоящее время InvoiceLine
в InvoiceLineEditor
и т.д.