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

时间:2021-01-06 19:40:10

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

类图

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

优点

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

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

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

使用场景   典型应用如Spring AOP

扩展

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

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

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

 

 

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

 

类图

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