J2EE业务层模式--传输对象

问题:

需要垮层次传输多种数据对象。

J2EE应用系统把服务器端的业务组件实现为会话门面和业务对象,这些组件的一些方法需要把数据返回给客户端。这些组件通常实现为远程对象,比如session bean 和 entity bean 。如果这些业务组件欂栌的是细粒度的get/set方法,客户端为了获得他需要的所有数据值,就必须调用多个getter方法。

但是这样一来回造成性能上的瓶颈,因为EJB的每次方法调用都可能是远程的。远程调用产生的网络负载,及时客户端和EJB容器在同一个JVM、操作系统或者物理主机上。所以,如果只需要每次获得一组数据,还要多次调用远程对象的getter方法,那就是极为低效的。执行的远程调用越多,应用系统也就是越啰嗦,这个应用系统的性能就是越恶化。

即使不是远程组件,也仍然会需要访问封装在另一个层次中的组件,比如业务层中的业务对象以及集成层中的数据访问对象。虽然这些组件不是远程对象,在发送、获取数据的时候,仍然应该通过粗粒度的接口访问他们。

约束:

要让客户端访问其他层中的组件,从而获取并更新数据。

要减少网络中的远程请求。

要避免啰嗦的,高网络负载的应用系统造成的网络性能恶化。

解决方案:

使用传输对象垮层次传输多种数据元素。

设计传输对象,就是要优化跨层次的数据传输。这样就可以不再逐个传输单独的数据元素,而是用一个传输对象,以单一的结构盛放请求或者响应需要的所有的数据元素。

传输对象按值传送给客户端,所以,对传输对象的所有调用都是作用于原始对象的拷贝上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值