在J2EE 软件开发中,通常会对系统模块进行分层,如下图所示:
展示层主要负责数据的展示,业务路基层负责具体的业务逻辑处理,而持久层负责数据库等持久化操作。
大型系统中,这些层次很有可能会被分离,部署在不同的服务器上。而在两个层次之间可能通过远程调用 RMI 等方式进行通信。例如有一个订单,有客户姓名、产品名称和编号三个属性,获取一个订单的过程如上图,要进行3次数据交互。
虽然这种模式可行,却有两个严重的问题:
第一,以面向对象设计的角度来看,这种方式不合理,繁琐且不具有较好的维护性。
第二,一个订单进行3次通信,性能太低。
为了解决这个问题,就可以使用 Value Object 模式。这种模式提倡将一个对