设计模式9——静态代理模式
代理模式是SpringAOP的底层。
代理模式分类:
-
静态代理模式
-
动态代理模式
代码实现:
1.接口
package com.ghl.staticproxy;
/**
* @ProjectName DesignPattern
* @ClassName Rent
* @Date 2020/8/29 20:57
* @Author gaohengli
* @Version 1.0
*/
//静态代理模式
//租房
public interface Rent {
public void rent();
}
2.真实角色
package com.ghl.staticproxy;
/**
* @ProjectName DesignPattern
* @ClassName Host
* @Date 2020/8/29 20:58
* @Author gaohengli
* @Version 1.0
*/
//房东
public class Host implements Rent{
@Override
public void rent() {
System.out.println("房东要出租房子");
}
}
3.代理角色
package com.ghl.staticproxy;
/**
* @ProjectName DesignPattern
* @ClassName Proxy
* @Date 2020/8/29 21:01
* @Author gaohengli
* @Version 1.0
*/
//代理(房租中介)
public class Proxy implements Rent{
private Host host;
public Proxy(Host host) {
this.host = host;
}
@Override
public void rent() {
seeHose();
host.rent();
heotong();
}
private void seeHose(){
System.out.println("中介带你看房子");
}
private void heotong(){
System.out.println("中介带你签合同");
}
}
4.客户端访问代理角色
package com.ghl.staticproxy;
/**
* @ProjectName DesignPattern
* @ClassName Client
* @Date 2020/8/29 20:59
* @Author gaohengli
* @Version 1.0
*/
//租客找房东租房
public class Client {
public static void main(String[] args) {
//房东要租房子
Host host = new Host();
//代理,中介帮房东出租,会有一些附属操作
Proxy proxy = new Proxy(host);
//直接找中介租房
proxy.rent();
}
}
代理模式的优缺点: