设计模式教程之Future模式

考虑这样一个情况,使用者可能快速翻页浏览文件中,而图片档案很大,如此在浏览到有图片的页数时,就会导致图片的载入,因而造成使用者浏览文件时会有停顿的现象,所以我们希望在文件开启之后,仍有一个背景作业持续载入图片,如此使用者在快速浏览页面时,所造成的停顿可以获得改善。

Future模式在请求发生时,会先产生一个Future物件给发出请求的客户,而同时间,真正的目标物件之生成,由一个新的执行绪持续进行(即 Worker Thread ),真正的目标物件生成之后,将之设定至Future之中,而当客户端真正需要目标物件时,目标物件也已经准备好,可以让客户提取使用。

一个简单的Java程式片段示范可能像是这样:

 public Future request() {

    final Future future = new Future();

    new Thread() {

        public void run() {

            // 下面这个动作可能是耗时的

            RealSubject subject = new RealSubject();

            future.setRealSubject(subject);

        }

    }.start();

    return future;

 } 

猜你喜欢

转载自leves.iteye.com/blog/1041908
今日推荐