代理模式在工作中,生活中都有所应用。生活中得中介、经纪人、等都是代理。
作用:通过代理控制对对象得访问。
代理模式主要有3中角色:
1.抽象角色:定义真是角色跟代理角色得公共对外开放得方法。
2.真实角色 :真正的关心的业务逻辑
3.代理角色:将统一的流程控制放在代理中处理
代理类分为:静态代理和动态代理两种
买房是程序员得大事儿,作为一个还在码代码得我,买不起房,就只用例子来满足一下我内心得渴望了哈哈。
静态代理:就是我们自己定义代理类。
找到中介
你也可以直接找房东买房,如果你能够找得到得话
测试:
之前写得全都没有类关系得表示,总觉得差点什么,想了想还是加上吧
动态代理:由程序自动的生成代理类。(实现方式有java中自带、CGLB、javaassist、ASM)
动态代理比静态代理更加灵活,更能统一控制处理。总觉得静态代理像我一样有点呆板哈哈。
需要实现 java.lang.reflect.InvocationHandler 接口
会自动得去创建一个代理类
这两个类我直接复制了。然后又新加了一个类来实现InvocationHandler这个接口
这个时候我只需要调用签约得方法,所有得流程都出走,因为我在invoke方法中统一处理了。