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

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

类图ide

函数

优势 this

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

2.       高扩展性   具体主题角色不能怎么变化,只要它实现了接口,代理类彻底能够在不作任何修改的状况下使用代理

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

使用场景   典型应用如Spring AOPorm

扩展xml

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

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

3.       虚拟代理    指在须要的时候,才初始化主题对象,能够避免被代理对象太多而引发的初始化缓慢问题

 

 

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

 

类图