我看到在域模型中的类型之间创建并传递DTO类型。这是好习惯吗?
我一直认为DTO主要用于上下文边界(即在对象图的边缘)来解耦上下文实现(例如在域/ ui边界处)。
答案 0 :(得分:2)
你的问题有点主观,但没关系。与大多数“硬性和快速规则”一样,确实没有严格的规则。只有指导方针。总有一个例外,或者一些特殊情况,其中最好的做法是针对最佳实践做一些事情(比如使用goto
语句来立即打破多个嵌套循环)。
话虽如此,不,使用您的域模型传递DTO类型并不是一个好习惯。 DTO代表数据 transfer 对象,转移通常意味着跨越某些边界的传输。如果您留在域模型中,则不应转换为DTO类型,然后再转换回域类型。
答案 1 :(得分:1)
创建一个与您的域模型平行的DTO层次结构,仅仅是为了分层纯度,对我来说似乎是一种反模式。我每次都反对它。
EJB 1.0鼓励以这种方式使用DTO,因为传递chatty的实体EJB效率低下。人们会将数据加载到DTO中以避免网络流量。我认为现在没必要了。