首页 > 代码库 > 代理模式用来初始化的延迟下载

代理模式用来初始化的延迟下载

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();        }//非常耗时的操作            }    @Override    public String request() {        // TODO Auto-generated method stub        return "ans";    }    }class DBQueryProxy implements IDBQery{    private IDBQery real=null; //被代理的对象    @Override    public String request() {        // TODO Auto-generated method stub        if(real==null) real=new DBQuery();        return real.request();    }            }public class 代理 {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        IDBQery proxy=new DBQueryProxy();//创建代理类;不初始化被代理的对象,而是延迟到真正用到这个类的时候    String ans=proxy.request();    System.out.println(ans);    }}

 

代理模式用来初始化的延迟下载