废话不多说,上代码:
我们创建一个TeacherDao类来教课,需要创建一个代理老师来教课。
第一步:先创建一个接口
public interface ITTeacherDao {
public void teach();
}
第二步:创建一个教课的老师类
public class TeacherDao implements ITTeacherDao {
@Override
public void teach() {
System.out.println("老师正在讲课");
}
}
第三步:创建一个教课的老师
//静态代理
public class TeacherDaoProxy implements ITTeacherDao {
//目标对象 通过接口来聚合
private ITTeacherDao target;
//构造器
public TeacherDaoProxy(ITTeacherDao target) {
this.target = target;
}
@Override
public void teach() {
System.out.println("代理开始");
target.teach();
System.out.println("代理结束");
}
}
最后测试类以及结果结果:
public class TeacherTest001 {
public static void main(String[] args) {
//创建目标对象
TeacherDao teacherDao = new TeacherDao();
//创建代理对象,同时将被代理对象传递给代理对象
TeacherDaoProxy teacherDaoProxy = new TeacherDaoProxy(teacherDao);
//通过代理对象,调用被代理对象的方法
teacherDaoProxy.teach();
}
}
结果输出如下:
代理开始
老师正在讲课
代理结束