Cod*_*ler 3 c# asp.net-mvc design-patterns dto asp.net-mvc-viewmodel
我一直在阅读有关 DTO 和 Viewmodel 之间的区别,其中主要的区别是 Viewmodel 中存在行为,而 DTO 仅通过层传输数据,但据我所知,并没有明确说明行为的定义。
Viewmodel 可以转换从 DTO 传入属性的数据,以针对特定视图以特定方式进行格式化,并且在 WPF 中,事件可以添加到 VM,这可以丰富其用途。那么,在本案中,“行为”究竟意味着什么呢?谢谢。
正如您将读到的,aDTO是“数据传输对象”。
不严格地说,Data是一个对象的一个方面,另一个方面Behavior'. 'Behavior又不严格地说,只是一组相关的动作(方法)和作用于该对象的事件Data。
因此,对象是一些数据和与该数据相关的一系列行为的容器。DTOs和ViewModels都是对象,但它们在生活中有不同的目的,因此对它们所包含的行为有不同的重视。
A DTO“仅”关心Transporting进程边界、应用程序层或网络之间的数据。
因此,DTOs通常几乎没有任何行为,因为行为就是动作,而动作只有在我们想要对数据执行某些操作时才有用。
由于运输/序列化有运输成本,我们通常只希望这些DTO是精益和平均的。
然而,一旦DTO飞机降落在目的地,我们通常会想要对其包含的数据做一些事情。因此,我们将数据从 中剥离出来DTO,非常感谢您在此处所做的出色工作,并将其填充到 中,ViewModel 以便我们可以通过行为(方法和事件)以某种方式(通常通过某些 UI)与数据进行交互。
因此,行为包括在编辑/保存时格式化值、根据 propertyA 中的更新值触发 propertyB 的更改等。
INotifyingPropertyChanged(INNPC) 接口通常会在 a 上实现ViewModel来帮助解决这个问题。
因此,由于行为只是与数据交互的选项(属性、方法、事件),所以ViewModels有这个,因为这就是我们构建视图的目的,与数据交互。另一方面,DTO 通常/通常没有(太多)行为,因为它们的功能是传输而不是交互。
| 归档时间: |
|
| 查看次数: |
714 次 |
| 最近记录: |