代理模式是SpringAOC的底层
代理模式分为:静态代理模式 动态代理模式
1、静态代理
代码步骤
接口:
package com.li.dedmo01;
public interface Rent {
public void rent();
}
真实角色:
package com.li.dedmo01;
public class Host implements Rent{
@Override
public 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、公共业务发生扩展的时候,方便集中管理
缺点:
一个真实角色就会产生一个代理角色,代码量会翻倍,开发效率会降低
个人理解代理模式的作用就是在不影响源代码的情况下增加操作