以UI为中心与以域为中心的数据模型 - 优点和缺点

时间:2009-10-05 08:06:51

标签: user-interface dns datamodel

您的数据模型与您的UI和域模型的关系有多紧密?

如果数据模型具有Customer表,Employee表等,则它可以非常接近域模型。

UI可能不会如此密切地反映数据模型 - 例如,可能存在多种形式,所有形式都将客户数据与其他杂项数据一起提供。在这种情况下,您可以使用单独的表来保存每个表单中的数据。根据需要,数据可以在未来的某个时间点组合...或者可以将表单数据直接插入到Customer表中,这样数据模型就不能与UI很好地相关联。

什么证明可以更好地为您服务?

3 个答案:

答案 0 :(得分:4)

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

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

如上所述,您的用户界面可能会经常更改,但这通常不会更改您正在解决的特定域名问题......

可以在此模式中找到信息:

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如果我有一个RESTful服务层,那么他们将公开域模型。在这种情况下,UI(任何特定屏幕)调用许多这些服务,并从收集的域模型组成屏幕。在这种情况下,尽管域模型一直到UI,但UI层会掠过必要的数据来构建其特定的屏幕。关于使用域模型(注释)进行持久化,还有一些有趣的问题。      我的观点是域模型可以是单一的事实来源。它可以完成承载数据的工作,相当好地封装逻辑。我参与了一些项目,这些项目有很多样板代码将每个域模型转换为DTO,VO,DO和你有什么。在大多数情况下,很多看起来很不必要,更多是由于习惯。

相关问题