代理模式能夠分紅靜態代理和動態代理兩種模式,它跟裝飾模式也有着很是相像的功能,都是爲了對某一個對象拓展它的功能,本文章寫的代理模式更加偏向於靜態代理的模式,是對一個真實功能的拓展ide
1.主體抽象類
public abstract class Subject { /** * 主體類 */ public abstract void request(); }
2.真實的主體類
public class RealSubject extends Subject { @Override public void request() { System.out.println("真實的請求"); } }
3.代理類,代理真實主體類的真實請求
public class Proxy extends Subject{ private RealSubject realSubject; /** * 代理真實實體,使用它的真實方法 */ @Override public void request() { if (realSubject ==null){ realSubject =new RealSubject(); } realSubject.request(); } }
4.測試用例
public class Test { public static void main(String[] args) { Proxy proxy =new Proxy(); proxy.request(); } }