前面我们介绍了 享元模式,今天我们来介绍一下 代理模式
一.代理模式的基本介绍
1)
代理模式:为一个对象
提供一个替身
,以控制对这个对象的访问。即通过代理 对象访问目标对象.
这样做的
好处是
:
可以在目标对象实现的基础上
,
增强额外的 功能操作,即扩展目标对象的功能
。
2)
被代理的对象可以是
远程对象
、
创建开销大的对
象或
需要安全控制的对象
3)
代理模式有不同的形式
,
主要有三种
静态代理
、
动态代理
(JDK
代理、接口代
理
)
和
Cglib
代理
(
可以在内存动态的创建对象,而不需要实现接口, 他是属于
动态代理的范畴
)
。后面两种有关JAVA 我们就不介绍了。
4)
代理模式示意图
二.静态代码模式的基本介绍
静态代理在使用时
,
需要定义接口或者父类
,
被代理对象
(
即目标对象
)
与代理对象一
起实现相同的接口或者是继承相同父类
应用实例
具体要求
1) 定义一个接口:ITeacherDao
2) 目标对象TeacherDAO实现接口ITeacherDAO
3) 使用静态代理方式,就需要在代理对象TeacherDAOProxy中也实现ITeacherDAO
4) 调用的时候通过调用代理对象的方法来调用目标对象.
5) 特别提醒:代理对象与目标对象要实现相同的接口,然后通过调用相同的方法来
调用目标对象的方法
6) UML
静态代理优缺点
1) 优点:在不修改目标对象的功能前提下, 能通过代理对象对目标功能扩展
2) 缺点:因为代理对象需要与目标对象实现一样的接口,所以会有很多代理类
3) 一旦接口增加方法,目标对象与代理对象都要维护