在 Java 服务器开发的时候,数据库层、逻辑层和展示层同一事物使用的实体有相同的属性,也有差异的属性,我在设计类的时候不知道应该如何命名,在数据传递的时候不知道应该如果屏蔽掉敏感的信息。
目前的解决方案是:针对不同的分层创建不同的实体,在数据传递的时候,创建对应的实体,采用拷贝属性的方式,将相同的属性复制过去,来达到屏蔽敏感信息的目的。
下面是《精通 Spring 4.X 企业应用开发实战》书中对领域模型中实体类的分类:
领域模型中的实体类可以分成4中类型:VO、DTO、DO、PO。
- PO(Persistent Object)
持久化对象,表示持久层的数据结构(如数据库表); - DO(Domain Object)
领域对象,即业务实体对象; - DTO(Data Transfer Object)
数据传输对象,原来的目的是为 EJB 的分布式应用提供粗粒度的数据实体,以降低分布式调用的次数,提高分布式调用的性能,后来一般泛指用户展示层于服务层之间的数据传输对象,因此可以将 DTO 看成一个组合版的 DO; - VO(View Object)
视图对象,用于展示层视图对应的对象。