传输对象和域对象之间的区别
2022-08-31 19:50:25
您能用简单的术语解释一下传输对象和域对象之间的区别吗?如果你能举一个Java的例子,那就太好了。
您能用简单的术语解释一下传输对象和域对象之间的区别吗?如果你能举一个Java的例子,那就太好了。
如果使用贫血数据模型(即您的域对象没有任何逻辑),则 DTO 和域对象可以是同一个对象。
数据传输对象 (DTO) 用于在应用程序的不同部分(如不同的层)或不同的应用程序之间交换数据。
域对象(DO)(以及它们派生的类)实现业务逻辑,因此它们仅位于业务逻辑层/域中(即使术语不同,基本含义也是相同的)。
由于 DO 实现业务逻辑,因此它们可能很复杂,并且可能包括方法、事件等。
关于 DTO 的另一点
根据Martin Fowler学派的思想,DTO是几个对象的组合(每个对象都是大多数人通常称之为DTO的);其基本原理是,在某些情况下,降低发送较大数据包的频率会降低(而不是“健谈”并不断通过线路发送许多小包)。
因此,大多数人将DTO视为单个对象,Martin F说DTO只是一个包含多个离散(可能不相关)对象的“信封”。IMO不是一个大问题 - 大多数人认为DTO是按照我在这个答案顶部的定义(或接近它的东西)。