代理模式
为什么要学习代理模式?因为这就是SpringAOP的底层!【SpringAOP 和 SpringMVC】
代理模式的分类:
`
- 静态代理
- 动态代理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rHxNgB08-1588121083507)(C:\Users\20460\AppData\Roaming\Typora\typora-user-images\image-20200428210929183.png)]
1.静态代理
角色分析:
- 抽象角色:一般会使用接口或者抽象类来解决
- 真实角色:被代理的角色
- 代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作
- 客户:访问代理对象的人!
代码步骤:
-
接口
package com.yun.staticProxy; //租房的接口 public interface Rent { void rent(); }
-
真实角色
package com.yun.staticProxy; //房东 public class Landlord implements Rent { @Override public void rent() { System.out.println("房东要出租房子!"); } }
-
代理角色
package com.yun.staticProxy; //租房公司 public class Proxy implements Rent { private Landlord landlord; public Proxy() { } public Proxy(Landlord landlord) { this.landlord = landlord; } @Override public void rent() { seeHouse(); landlord.rent(); hetong(); fare(); } //看房 public void seeHouse(){ System.out.println("中介代理看房!"); } //收中介费 public void fare(){ System.out.println("收中介费!"); } //签合同 public void hetong(){ System.out.println("签租赁合同!"); } }
-
客户端访问代理角色
package com.yun.staticProxy; //租房的人 public class Client { public static