"ViewModel Behavior"的定义是什么?
What is the definition of "ViewModel Behavior"?
我一直在阅读 DTO 和 Viewmodels 之间的区别,其中主要的区别是 Viewmodels 中存在行为,而 DTO 只是通过层传输数据,但没有明确说明行为的定义为据我所知。
Viewmodels 可以转换从 DTO 传递到属性中的数据,以针对特定视图以特定方式进行格式化,并且在 WPF 中,事件可以添加到 VM,这可以丰富它们的用途。那么 "behavior" 在这种情况下到底意味着什么?谢谢
通常,DTO 顾名思义,是一个没有任何行为的简单对象,用于跨系统边界传输数据。
然而 Viewmodel 的目的是分离 concern.It 是视图模型的责任,将您的视图与 model.It 分离可以执行许多操作,如切换视图 elements.validation 运行 一些自定义逻辑,其中 DTO cannot.That 是您的视图模型行为。
如您所见,DTO
是 "Data Transfer Object"。
笼统地说 Data
是一个对象的一个方面,另一个是 Behavior'. 'Behavior
再次笼统地说只是一组相关的动作(方法)和作用于该对象的事件 Data
.
所以一个对象是一些数据的容器,以及一堆与该数据相关的行为。 DTOs
和 ViewModels
都是对象,但它们在生活中的目的不同,因此对它们所包含的行为有不同的强调。
A DTO
'only' 与 Transporting
之间的数据有关,例如进程边界、应用程序层或网络。
因此 DTOs
通常几乎没有任何行为,因为行为就是动作,而动作只有在我们想对数据做某事时才有用。
由于运输/序列化有运输成本,我们通常只希望这些 DTO
s 精简和平均。
然而,一旦 DTO
到达目的地,我们通常会希望对其包含的数据进行一些操作。因此,我们将数据从 DTO
中剥离出来,非常感谢您在此处所做的出色工作,并将其填充到 ViewModel
中,以便我们可以通过行为以某种方式与数据交互(方法和事件)通常通过一些 UI.
所以行为就是在编辑/保存时格式化值,根据 propertyA 中的更新值触发 propertyB 的更改等。
INotifyingPropertyChanged
(INPC) 接口通常会在 ViewModel
上实现以帮助解决这个问题。
因此,由于行为只是与数据(属性、方法、事件)交互的选项,ViewModels
有这个,因为这是我们构建视图、与数据交互的目的。另一方面,DTO 通常/通常没有(很多)行为,因为它们的功能是传输而不是交互。
我一直在阅读 DTO 和 Viewmodels 之间的区别,其中主要的区别是 Viewmodels 中存在行为,而 DTO 只是通过层传输数据,但没有明确说明行为的定义为据我所知。
Viewmodels 可以转换从 DTO 传递到属性中的数据,以针对特定视图以特定方式进行格式化,并且在 WPF 中,事件可以添加到 VM,这可以丰富它们的用途。那么 "behavior" 在这种情况下到底意味着什么?谢谢
通常,DTO 顾名思义,是一个没有任何行为的简单对象,用于跨系统边界传输数据。 然而 Viewmodel 的目的是分离 concern.It 是视图模型的责任,将您的视图与 model.It 分离可以执行许多操作,如切换视图 elements.validation 运行 一些自定义逻辑,其中 DTO cannot.That 是您的视图模型行为。
如您所见,DTO
是 "Data Transfer Object"。
笼统地说 Data
是一个对象的一个方面,另一个是 Behavior'. 'Behavior
再次笼统地说只是一组相关的动作(方法)和作用于该对象的事件 Data
.
所以一个对象是一些数据的容器,以及一堆与该数据相关的行为。 DTOs
和 ViewModels
都是对象,但它们在生活中的目的不同,因此对它们所包含的行为有不同的强调。
A DTO
'only' 与 Transporting
之间的数据有关,例如进程边界、应用程序层或网络。
因此 DTOs
通常几乎没有任何行为,因为行为就是动作,而动作只有在我们想对数据做某事时才有用。
由于运输/序列化有运输成本,我们通常只希望这些 DTO
s 精简和平均。
然而,一旦 DTO
到达目的地,我们通常会希望对其包含的数据进行一些操作。因此,我们将数据从 DTO
中剥离出来,非常感谢您在此处所做的出色工作,并将其填充到 ViewModel
中,以便我们可以通过行为以某种方式与数据交互(方法和事件)通常通过一些 UI.
所以行为就是在编辑/保存时格式化值,根据 propertyA 中的更新值触发 propertyB 的更改等。
INotifyingPropertyChanged
(INPC) 接口通常会在 ViewModel
上实现以帮助解决这个问题。
因此,由于行为只是与数据(属性、方法、事件)交互的选项,ViewModels
有这个,因为这是我们构建视图、与数据交互的目的。另一方面,DTO 通常/通常没有(很多)行为,因为它们的功能是传输而不是交互。