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);}}