ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 静态代理 定义:代理和被代理对象在代理之前是确定的;他们都实现相同的接口或者继承相同的抽象类 在静态代理模式下,代理类需要开发者自己写好,即开发者需要自己实现代理类的.java文件,也就是说在项目编译之前就需要存在代理类的.java文件; 然后再编译阶段就可以将代理类的.java文件编译成.class文件,从而得到代理类的class信息; 因为此时得到了代理类的class文件还没到java程序启动运行阶段呢,所以管这个叫做静态代理,也就是在程序代码还未启动之前就已经获取到代理类的class信息 两种实现机制 * 继承 * 聚合 ### 静态代理的优点和缺点 优点: 扩展原功能,不侵入原代码 缺点:如果通过继承方式实现,因为JAVA类只能继承一个父类,所以需要有多个代理类;如果通过聚合实现,当要实现多个接口代理时,代码会比较臃肿,需要为每个代理接口编写实现代码 模式: ![](https://img.kancloud.cn/8c/8f/8c8fd0985e874a4f3903422090f5f756_420x246.png)