静态代理模式
public class Client {
public static void main(String[] args) {
//创建目标对象,被代理对象
TeacherDao teacherDao=new TeacherDao();
TeacherDaoProxy teacherDaoProxy=new TeacherDaoProxy(teacherDao);
//执行代理对象方法,代理对象再去执行目标对象方法
/* teacherDao.teach();*/
teacherDaoProxy.teach();
//就是在代理类中拥有更多的方法
}
}
public interface IteacherDao {
void teach();
}
public class TeacherDao implements IteacherDao {
@Override
public void teach() {
System.out.println("老师授课");
}
}
public class TeacherDaoProxy implements IteacherDao {
private IteacherDao target;//目标对象通过接口来聚合
//构造器
public TeacherDaoProxy(IteacherDao target) {
this.target = target;
}
@Override
public void teach() {
System.out.println("代理开始");
target.teach();
System.out.println("代理提交");
}
}