05.结构型:静态代理模式设计思想
目录介绍
- 00.代理分类说明
- 01.静态代理定义
- 02.静态代理伪代码
- 03.静态代理拓展
- 04.静态代理实际案例
- 05.静态代理类优缺点
01.静态代理定义
- 定义
- 静态代理:代理类是在编译时就实现好的。也就是说 Java 编译完成后代理类是一个实际的 class 文件。
- 若代理类在程序运行前就已经存在,那么这种代理方式被成为 静态代理 ,这种情况下的代理类通常都是我们在Java代码中定义的。
- 通常情况下,静态代理中的代理类和委托类会实现同一接口或是派生自相同的父类。
- 实现模式
- 1.首先创建一个接口(JDK代理都是面向接口的),
- 2.创建具体实现类来实现这个接口,
- 3.创建一个代理类同样实现这个接口,不同之处在于具体实现类的方法中需要将接口中定义的方法的业务逻辑功能实现,而代理类中的方法只要调用具体类中的对应方法即可,这样我们在需要使用接口中的某个方法的功能时直接调用代理类的方法即可,将具体的实现类隐藏在底层。
- 举一个实际案例
- 1.定义用户找房子的需求接口
- 2.创建用户找房子具体实现类
- 3.创建一个代理中介,委托中介去找房子
02.静态代理伪代码
- 代码如下所示
- 可以了解到,静态代理可以通过聚合来实现,让代理类持有一个委托类的引用即可。