代码之家  ›  专栏  ›  技术社区  ›  msemack

以用户界面为中心与以域为中心的数据模型的优缺点

  •  2
  • msemack  · 技术社区  · 6 年前

    您的数据模型与您的UI和域模型的映射程度如何?

    如果数据模型具有客户表、员工表等,那么它可以非常接近域模型。

    尽管如此,用户界面可能无法如此紧密地反映数据模型——例如,可能有多个表单,所有表单都以客户数据的位和段以及其他杂项数据的形式提供。在这种情况下,可以有一个单独的表来保存来自每个表单的数据。根据需要,数据可以在未来的某个时间点进行组合…或者,可以将表单数据直接插入到客户表中,这样数据模型就不会与UI很好地关联。

    什么已经证明对你更有效?

    3 回复  |  直到 9 年前
        1
  •  4
  •   Paul    16 年前

    我发现将域模型映射到您正试图解决的现实世界问题更为清晰。

    然后,您可以创建视图模型,它作为视图所需所有数据的存储桶。

    如前所述,您的UI可以经常更改,但这通常不会改变您正在处理的特定域问题…

    有关此模式的信息,请访问:

    http://blogs.msdn.com/dphill/archive/2009/01/31/the-viewmodel-pattern.aspx

        2
  •  0
  •   Kendall Helmstetter Gelner    16 年前

    UI可以根据许多需求进行更改,因此通常最好将数据保存在域模型中,从任何一个UI中抽象出来。

        3
  •  0
  •   redzedi    13 年前

    如果我有一个RESTful服务层,它们将公开什么域模型。在这种情况下,UI(任何特定的屏幕)调用许多这些服务,并且从收集的域模型组成屏幕。在这个场景中,尽管域模型一直冒泡到用户界面,但是用户界面层会跳过必要的数据来构建其特定的屏幕。关于如何使用域模型(注释的)进行持久性,还有一些有趣的问题。 我的观点是,领域模型可以是单一的真理来源。它可以很好地完成数据的携带、逻辑的封装等工作。我曾经在项目中工作过,这些项目有很多样板代码,可以将每个域模型转换为DTO、VO、DO以及您拥有的东西。在大多数情况下,由于习惯的原因,这看起来是不必要的。