术语
Proxy:代理
如图:
分类
静态代理
角色
接口
ITeacherDao
目标对象
TeacherDAO
代理类
TeacherDAOProxy
细节
代理对象与目标对象要实现相同的接口
调用的时候通过调用代理对象的方法来调用目标对象
案例:
package com.javatf.design.proxy.staticproxy;
/**
* @author 头发
* @site www.javatf.com
* @company
* @create 2020-02-24 9:35
* <p>
* 目标类
*/
public class TeacherDAO implements ITeacherDao {
public void teach() {
System.out.println("老师传授知识");
}
}
//目标接口
interface ITeacherDao {
void teach();
}
//代理类
class TeacherDAOProxy implements ITeacherDao {
private ITeacherDao teacherDAO;
public TeacherDAOProxy(ITeacherDao teacherDAO) {
this.teacherDAO = teacherDAO;
}
@Override
public void teach() {
System.out.println("老师正式授课前的准备工作,如学生全部签到...");
teacherDAO.teach();
System.out.println("老师结束授课,如下课铃声响起...");
}
}
public class Client {
public static void main(String[] args) {
TeacherDAOProxy proxy = new TeacherDAOProxy(new TeacherDAO());
proxy.teach();
}
}
动态代理
jdk代理
角色
接口
ITeacherDao
目标对象
TeacherDAO
代理类