代理模式
为一个对象提供一个替身,以控制对这个对象的访问。即:通过代理对象访问目标对象,
这样做的好处是:可以在目标对象的基础上,增强额外的功能操作,即扩展目标对象功能;
分类:
静态代理,动态代理 Cglib代理
静态代理
静态代理在使用时,需要定义接口或者父类,被代理对象(即目标对象)与代理对象一
起实现相同的接口或者是继承相同父类
应用实例
具体要求
1) 定义一个接口:ITeacherDao
2) 目标对象TeacherDAO实现接口ITeacherDAO
3) 使用静态代理方式,就需要在代理对象TeacherDAOProxy中也实现ITeacherDAO
4) 调用的时候通过调用代理对象的方法来调用目标对象.
5) 特别提醒:代理对象与目标对象要实现相同的接口,然后通过调用相同的方法来
调用目标对象的方法。

//接口public interface ITeacherDao {void teach(); // 授课的方法}public class TeacherDao implements ITeacherDao {@Overridepublic void teach() {// TODO Auto-generated method stubSystem.out.println(" 老师授课中 。。。。。");}}//代理对象,静态代理public class TeacherDaoProxy implements ITeacherDao{private ITeacherDao target; // 目标对象,通过接口来聚合//构造器public TeacherDaoProxy(ITeacherDao target) {this.target = target;}@Overridepublic void teach() {// TODO Auto-generated method stubSystem.out.println("开始代理 完成某些操作。。。。。 ");//方法target.teach();System.out.println("提交。。。。。");//方法}}
