这个问题已经在这里有一个答案:
- 什么是数据传输对象? 6个回答
我读过很多关于使用模式在需要时,才。 我目前正在写一个非常简单的应用程序,实现真实的信息库和服务模式 - 现在我辩论是否要我的域对象传递给使用DTO的视图。 这是一个单页的应用程序。
我开始创建我的模型的DTO类,但仍然无法理解他们提供什么样的好处。 这感觉就像我刚才复制的一切没有任何理由。
什么时候适合使用的DTO? 在什么时候才有必要或有益? 任何例子/样品将是真棒。
这个问题已经在这里有一个答案:
我读过很多关于使用模式在需要时,才。 我目前正在写一个非常简单的应用程序,实现真实的信息库和服务模式 - 现在我辩论是否要我的域对象传递给使用DTO的视图。 这是一个单页的应用程序。
我开始创建我的模型的DTO类,但仍然无法理解他们提供什么样的好处。 这感觉就像我刚才复制的一切没有任何理由。
什么时候适合使用的DTO? 在什么时候才有必要或有益? 任何例子/样品将是真棒。
我开始创建我的模型的DTO类,但仍然无法理解他们提供什么样的好处。
然后,它很可能是在这种情况下,他们不提供好处的情况。 用最简单的方法坚持始终是最好的,所以你可能会试图增加不必要的复杂性。
我要说的是DTO的是有用的,当你只需要通过周围的一些扁平的数据,而无需复杂的域对象。 在我看来,这将是直接绑定你的意见,你的业务对象在可能的情况。 如果不出意外,它提供了一个全面的检查你的业务对象都符合您的使用情景线。 事实上,这是所倡导的方法的CSLA框架,其重点是业务对象(等等)。
在那里我发现自己翻译域对象到DTO的最常见的情况是:
我认为关键是从数据到另一个形状的一个形状,翻译。 如果有很多翻译的服务,或控制器,或视图回事......那么也许,翻译是一个足够大的分量,值得自己的对象。 这是所有关于关注点分离,真的。 一个好的经验法则是,如果一段代码是“重新塑造的数据用于一些目的和实现该目的”,那么这段代码是做两件事情。 也许最好分开掰成两段代码。 该DTO是这两个如何沟通。
有工具(如AutoMapper ),它可以有很多的“脚手架”代码帮助志同道合的对象之间的转换。