读书人

设计方式教程之Future模式

发布时间: 2012-09-10 22:20:12 作者: rapoo

设计模式教程之Future模式

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

?

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

?

设计方式教程之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;

?}?

读书人网 >软件开发

热点推荐