MVC模型对象,域对象和DTO有什么区别?
我的理解是:
MVC模型对象:
为要通过相应视图显示的数据建模。它可能不会直接映射到域对象,即可能包含来自一个或多个域对象的数据。
- 客户端
- 可能包含业务逻辑。例如。验证,计算的属性等
- 没有与持久性相关的方法
域对象:
在问题域中对真实世界对象进行建模的对象,例如“保留”,“客户”,“订单”等。用于保留数据。
- 服务器端
- 没有业务逻辑
DTO(数据传输对象):
当层处于单独的进程中时(例如,从DB到客户端应用程序),用于在层之间传输数据的对象。当获取与多个域对象相对应的数据时,允许通过导线进行单个事务,而不是多个调用。DTO仅包含数据和访问器方法,并且不存在逻辑。数据用于特定的DB事务,因此它可能会或可能不会直接映射到域对象,因为它可能包含来自一个或多个域对象的数据。
- 在层之间传递时,在服务器端和客户端均使用
- 没有业务逻辑
- 没有与持久性相关的方法
因此,问题是:
以上理解正确吗?我是否缺少一些要点?
假设模型对象不需要额外的业务逻辑,是否有任何理由不将Domain对象用作MVC模型?
假设Model对象不需要额外的业务逻辑,是否有任何理由不将DTO用作MVC模型?