Core J2EE Patterns - Business Delegate


这个模式通常见于web层。用于降低UI显示和中间层(商业逻辑层)之间的耦合。在配置上,配置在web server中。

在大多数web应用中,UI层是改动最为频繁的。相对而言,中间层的改动的机会要小得多。因此,隔离中间层的改动并不是引入Business Delegate的一个充分的理由。

当J2EE应用分布部署到不同的JVM时,中间层的API通常都会抛出RemoteException. 使用Business Delegate可以比较好地将这个异常重新包装。

同时,Business Delegate这层接口是引入web cache的最佳地点。使用cache可以极大地提高系统的响应,降低数据库的压力。当然,引入web cache同时也会引入新的问题:一个是cache失效的问题,一个是在分布式应用的web服务期间cache如何同步的问题。因和主题无关,不再述。

也可以在Business Delegate里面用Service Locater来cache business service 的引用,避免反复look up。

在充分使用Business Delegate和 Session fa?ade模式的系统中, Business Delegate的类和session facade的类是一对一的。如果出现了一对多的情况,尽可能地重构session fa?ade,使之能符合一对一的结构。

没有评论: