靜態代理比較簡單 直接上代碼 不做解釋
/**
* 抽象角色
* 定義爲接口或者抽象類,定義方法
* @author BaiWen
*
*/
public interface Subject {
public void request();
}
/**
* 真實角色
* 實現接口,實現方法
* @author BaiWen
*
*/
public class RealSubject implements Subject {
@Override
public void request() {
System.out.println("RealSubject.request invoke");
}
}
/**
* 代理角色
* 實現抽象角色,並定義一個真實角色的成員變量
* @author BaiWen
*
*/
public class ProxySubject implements Subject {
private RealSubject subject = new RealSubject();
@Override
public void request() {
subject.request();
}
}
/**
* 測試客戶端
* @author BaiWen
*
*/
public class Client {
public static void main(String[] args) {
Subject subject = new ProxySubject();
subject.request();
}
}