如题,不明白VM实体和dto实体有什么区别,感觉都是为了业务层展示数据实体的
表现层与应用层之间是通过数据传输对象(DTO)进行交互的,数据传输对象是没有行为的POCO对象,它 的目的只是为了对领域对象进行数据封装,实现层与层之间的数据传递。为何不能直接将领域对象用于 数据传递?因为领域对象更注重领域,而DTO更注重数据。不仅如此,由于“富领域模型”的特点,这样 做会直接将领域对象的行为暴露给表现层。
需要了解的是,数据传输对象DTO本身并不是业务对象。数据传输对象是根据UI的需求进行设计的,而不 是根据领域对象进行设计的。比如,Customer领域对象可能会包含一些诸如FirstName, LastName, Email, Address等信息。但如果UI上不打算显示Address的信息,那么CustomerDTO中也无需包含这个 Address的数据
简单来说Model面向业务,我们是通过业务来定义Model的。而DTO是面向界面UI,是通过UI的需求来定义的。通过DTO我们实现了表现层与Model之间的解耦,表现层不引用Model,如果开发过程中我们的模型改变了,而界面没变,我们就只需要改Model而不需要去改表现层中的东西。
哥们,我感觉vm实体对象也是根据ui表现层来设计的,和dto没什么区别啊
1、vm一般叫视图模型(view model)应用于表现层,具体框架如mvvm(model-view-viewModel)主要是为解决UI逻辑与视图分离;
2、Data Transfer Object(数据传输对象)感觉主要是用来与数据源进行数据交互。进行领域模型的转换。
DAO叫数据访问对象,DTO是数据传输对象。
DAO通常是将非对象数据(如关系数据库中的数据)以对象的方式操纵。DTO通常用于不同层(UI层、服务层或者域模型层)直接的数据传输,以隔离不同层,降低层间耦合。
DAO (Data Access Objects) 数据访问对象是第一个面向对象的接口,它显露了Microsoft Jet 数据库引擎(由 Microsoft Access 所使用),并允许 Visual Basic 开发者通过 ODBC 象直接连接到其他数据库一样,直接连接到 Access 表。DAO 最适用于单系统应用程序或小范围本地分布使用。
不明白VM实体和dto实体有什么区别,感觉都是为了业务层展示数据实体的
错,dto还可以用来在不同系统之间的api传输数据,比如你的程序调用天气预报web服务,返回的一个城市的天气信息的各种字段,就是dto,但是显然不是vm
也不用搞那么复杂,我理解就是dto就是数据表的映射,或者对数据表的简单封装
VM 就是为了前端展示,对数据表实体的重新组合,一些适合DB使用但不适合展示的(比如状态字段123代表停止、运行、暂停)要替换成实际含义
VM一般用做前端展示,VM展示的数据会比较复杂,可能是后台多个model、表数据的组合,VM的属性对应页面展示的元素
DTO是传输对象,我们一般用系统间交互,DTO对象的属性对应接口的参数