表现层与应用层之间是经过数据传输对象(DTO)进行交互的,数据传输对象是没有行为的POCO对象,它的目的只是为了对领域对象进行数据封装,实现层与层之间的数据传递。为什么不能直接将领域对象用于数据传递?由于领域对象更注重领域,而DTO更注重数据。不只如此,因为“富领域模型”的特色,这样 作会直接将领域对象的行为暴露给表现层。数据库
需 要了解的是,数据传输对象DTO自己并非业务对象。数据传输对象是根据UI的需求进行设计的,而不 是根据领域对象进行设计的。好比,Customer 领域对象可能会包含一些诸如FirstName, LastName, Email, Address等信息。但若是UI上不打算显示Address的信息,那么CustomerDTO中也无需包含这个 Address的数据框架
简单来讲Model面向业务,咱们是经过业务来定义Model的。而DTO是面向界面UI,是经过UI的需求来定义的。经过DTO咱们实现了表现层 与Model之间的解耦,表现层不引用Model,若是开发过程当中咱们的模型改变了,而界面没变,咱们就只须要改Model而不须要去改表现层中的东西。dom