六 设计模式之代理模式(或称委托模式)

定义   为其它对象提供一种代理以控制对这个对象的访问

类图

优点

1.       职责清晰   真实的角色就是实现的业务逻辑,不用关心其他非本指责的事务

2.       高扩展性   具体主题角色不能怎么变化,只要它实现了接口,代理类完全可以在不做任何修改的情况下使用

3.       智能化     动态代理是最好的体现,即在运行阶段才指定实际代理对象(Struts如何把表单元素映射到对象上?)

使用场景   典型应用如Spring AOP

扩展

1.       普通代理    要求客户端只能访问代理角色,而不能访问真实角色

2.       强制代理    要求客户端必须通过真实角色找到代理角色(演员和经纪人)

3.       虚拟代理    指在需要的时候,才初始化主题对象,可以避免被代理对象太多而引起的初始化缓慢问题

 

 

1.       动态代理    指在实现阶段不用关心代理谁,而在运行阶段才指定代理哪个对象,动态代理根据被代理的接口生成所有的方法即给定一个接口,动态地理就宣传我已经实现该接口下的所有方法了(通过InvocationHandler接口)

 

类图

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值