【问题标题】:Qooxdoo Desktop Design Best PracticeQooxdoo 桌面设计最佳实践
【发布时间】:2017-02-02 10:26:50
【问题描述】:

我想知道你是如何设计你的 Qooxdoo 代码的。

我没有得到令我满意的正确架构。

View 很难用类似服务的逻辑来封装。

我希望有人能给我一个 Pattern 或其他东西的提示,以找到一个好的解决方案。

【问题讨论】:

    标签: qooxdoo


    【解决方案1】:

    Qooxdoo 最大的特点之一是强大的 OO 类系统,因此您使用的模式实际上取决于您 - MVC、MVVC 等都是可能的,因为 Qooxdoo 的 OO 系统为您提供了实现您喜欢的模式的工具(s )。

    我发现一种非常有用的模式,尤其是在创建更大的应用程序时,是定义用于编辑模型的自定义小部件;例如,如果您有 CustomerInvoiceInvoiceLineAddress 的模型(又名“业务对象”等),并有 CustomerEditorInvoiceEditorInvoiceLineEditor 等的小部件真正有用首先是因为它封装了代码,还因为它支持binding

    绑定是 Qooxdoo 的一个非常强大的功能 - 要了解原因,让我们假设您的每个编辑器小部件都有一个名为 value 的属性,这是正在编辑的东西。

    在简单绑定中,您的编辑器可以将模型的属性绑定到显示和编辑这些属性的小部件,例如 CustomerEditor 绑定 value.firstNamevalue.lastName 到一对 qx.ui.form.TextField 并自动更改为客户的firstNamelastName 将在两个 TextField 中更新。绑定也可以反过来工作,因此对 TextField 的更改会复制回模型中。

    有一个名为 qx.data.controller.Form 的控制器类可以简化实现这一过程的过程,并且还可以选择合并用户值和用户反馈的验证。

    如果您有单独的编辑器小部件,您也可以绑定到它们 - 例如,Customer 可以将 value.address 绑定到 AddressEditor 的实例,InvoiceEditor 可以将当前选择的 InvoiceLine 绑定到 @ 987654341@等

    【讨论】:

      猜你喜欢
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 2013-07-31
      • 2010-09-05
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 2018-03-08
      相关资源
      最近更新 更多