gpt4 book ai didi

c# - "ViewModel Behavior"的定义是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 19:03:43 24 4
gpt4 key购买 nike

我一直在阅读 DTO 和 Viewmodels 之间的区别,其中主要的区别是 Viewmodels 中存在行为,而 DTO 只是通过层传输数据,但没有明确说明行为的定义我读。

Viewmodels 可以转换从 DTO 传递到属性中的数据,以针对特定 View 以特定方式进行格式化,并且在 WPF 中,事件可以添加到 VM,这可以丰富它们的用途。那么在这种情况下,“行为”究竟意味着什么?谢谢。

最佳答案

正如您所读到的,DTO 是一个“数据传输对象”。

宽泛地说,Data 是对象的一个​​方面,另一个是Behavior'。 “行为” 再次笼统地说是一组相关的 Action (方法)和作用于 Data 的事件。

所以对象是一些数据的容器,以及一堆与该数据相关的行为。 DTOViewModels 都是对象,但它们在生活中有不同的目的,因此对它们包含的行为有不同的强调。

DTO“仅”与传输数据有关,例如,进程边界、应用程序层或网络。

因此,DTO 通常几乎没有行为,因为行为就是 Action ,而 Action 仅在我们想要对数据执行某些操作时才有用。

由于运输/序列化有运输成本,我们通常只希望这些 DTO 精简和精简。

然而,一旦 DTO 到达了它的目的地,我们通常会想要对它包含的数据做一些事情。因此,我们将数据从 DTO 中剥离出来,非常感谢您在此处所做的出色工作,并将其填充到 ViewModel 中,以便我们可以与数据进行交互以某种方式通过行为(方法和事件)通常通过一些 UI。

所以行为就是在编辑/保存时格式化值,根据 propertyA 中的更新值触发 propertyB 的更改等。

INotifyingPropertyChanged (INPC) 接口(interface)通常会在 ViewModel 上实现以帮助实现这一点。

因此,由于行为只是与数据(属性、方法、事件)交互的选项,ViewModels 具有此功能,因为这是我们构建 View 、与数据交互的目的。另一方面,DTO 通常/通常没有(很多)行为,因为它们的功能是传输而非交互。

关于c# - "ViewModel Behavior"的定义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32001502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com