码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-07-27 09:52:32      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

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

    }

}

 

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

标签:

原文地址:http://www.cnblogs.com/hansongjiang/p/3870390.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!