package 設計模式; //代理模式實現延遲加載來減小啟動時間 //數據庫查詢接口 interface IDBQery{ public String request(); }class DBQuery implements IDBQery {//創建一個DBQery非常耗時的,這里面我可以在需要DBQuery的時候在創建public DBQuery(){try {Thread.sleep(3000);} catch (InterruptedException e) {// TODO Auto-generated catch block e.printStackTrace();}//非常耗時的操作 }@Overridepublic String request() {// TODO Auto-generated method stubreturn "ans";}} class DBQueryProxy implements IDBQery {private IDBQery real=null; //被代理的對象 @Overridepublic String request() {// TODO Auto-generated method stubif(real==null) real=new DBQuery();return real.request();}}public class 代理 {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubIDBQery proxy=new DBQueryProxy();//創建代理類;不初始化被代理的對象,而是延遲到真正用到這個類的時候String ans=proxy.request();System.out.println(ans);}}
?