设计模式教程之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;
?}?