設計模式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();
}
}
代理模式的優缺點:

浙公網安備 33010602011771號