代理模式是SpringAOC的底层
代理模式分为:静态代理模式 动态代理模式
1、静态代理
代码步骤
接口:
package com.li.dedmo01;public interface Rent {public void rent();
}
真实角色:
package com.li.dedmo01;public class Host implements Rent{@Overridepublic void rent() {System.out.println("房东出租房子");}
}
代理角色:
package com.li.dedmo01;public class Proxy {private Host host;public Proxy(Host host) {this.host = host;}public Proxy() {}public Host getHost() {return host;}public void setHost(Host host) {this.host = host;}public void affair(){see();pact();money();}private void money(){System.out.println("收钱");}private void see(){System.out.println("看房");}private void pact(){System.out.println("签合同");}
}
客户端访问代理角色:
package com.li.dedmo01;public class Client {public static void main(String[] args) {Host host = new Host();Proxy client = new Proxy(host);client.affair();}}
静态代理模式的好处
1、可以使真实角色的操作更加纯粹,不用去关注一些公共的服务
2、公共业务就交给了代理角色,实现了业务的分工
3、公共业务发生扩展的时候,方便集中管理
缺点:
一个真实角色就会产生一个代理角色,代码量会翻倍,开发效率会降低
个人理解代理模式的作用就是在不影响源代码的情况下增加操作