我知道代理模式是怎么回事了,但是问题是到底什么场合用这个模式有好处?
我记得几年前用J2EE开发了一个网站,里面的用户注册就是用代理模式,但是现在竟然一点印象都没有了

解决方案 »

  1.   

    这个要怎么解释呢,比如举个顾客到超市买东西,超市会给顾客累计消费额 的例子没有使用 Proxy 模式,我们一般会将DB操作操作业务操作放在一起,可能DB操作会用DAO封装一下,但仍然可以看见数据库操作的痕迹CustomerDAO dao = CustomerDAOFactory.getInstence();顾客 a = dao.getCustoemrById(会员卡号);a.setAmount(这次购物金额+a.getAmount());dao.updateCustomer(a);//累计消费额及更新折扣
    使用Proxy将我们的分层后,我们将数据库操作交给代理来完成,我们只需要关心业务逻辑,而且业务逻辑里面不会出现任何有关DB操作的味道,只有类似下面的过程顾客 a = CustomerProxy.getCustomer(会员卡号);a.setAmount(这次购物金额+a.getAmount());CustomerProxy.save(a);//累计消费额及更新折扣前面举的那个没用用Proxy模式的例子不好,要举一将数据库和业务操作放在一起的例子更合适Proxy模式,主要为了分层,将业务逻辑和数据持久化分开,让程序员更能专注于业务流程的优化和解决,并使业务逻辑清晰明了,便于维护