8.[代理模式(https://www.cnblogs.com/zuoxiaolong/p/pattern3.html)
分为两种:静态代理、动态代理
静态代理的操作步骤:
- 代理类一般要持有一个被代理的对象的引用。
- 对于我们不关心的方法,全部委托给被代理的对象处理。
- 自己处理我们关心的方法。
动态代理
- 动态代理有一个强制性要求,就是被代理的类必须实现了某一个接口,或者自己本身就是一个完整的接口
- 动态代理demo
//需要先声明一个接口//Testclasspublic class TestIntface{//一个关闭方法void close();}//代码过长 就不写啦 哈哈public class Proxydemo<T> implements InvocationHandler{//需要一个可以包含所有的对象 生命一个Object对象这样无论是什么类型都可以接受啦private T tt;//声明一个构造方法强制性接受一个参数 这边就不使用object了 使用泛型public Proxydemo(T t){this.tt=t;}//实现jdk的动态代理接口@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {//可以在之前执行打印日志 或者之后执行 都可以 原理等同AOPproxy=method.invoike(tt,args);return proxy;}}
