Reader small image

You're reading from  Kotlin Design Patterns and Best Practices - Second Edition

Product typeBook
Published inJan 2022
Reading LevelBeginner
PublisherPackt
ISBN-139781801815727
Edition2nd Edition
Languages
Right arrow
Author (1)
Alexey Soshin
Alexey Soshin
author image
Alexey Soshin

Alexey Soshin is a software architect with 15 years of experience in the industry. He started exploring Kotlin when Kotlin was still in beta, and since then has been a big enthusiast of the language. He's a conference speaker, published writer, and the author of a video course titled Pragmatic System Design.
Read more about Alexey Soshin

Right arrow

Deferred Value

The goal of the Deferred Value design pattern is to return a reference to a result of an asynchronous computation. A Future in Java and Scala, and a Promise in JavaScript are both implementations of the Deferred Value design pattern.

We've already discussed deferred values in Chapter 6, Threads and Coroutines. We've seen that the async() function returns a type called Deferred, which is also an implementation of this design pattern.

Interestingly enough, the Deferred value itself is an implementation of both the Proxy design pattern that we've seen in Chapter 3, Understanding Structural Patterns, and the State design pattern from Chapter 4, Getting Familiar with Behavioral Patterns.

We can create a new container for the result of an asynchronous computation using the CompletableDeferred constructor:

val deferred = CompletableDeferred<String>()

To populate the Deferred value with a result, we use the complete() function, and if an...

lock icon
The rest of the page is locked
Previous PageNext Page
You have been reading a chapter from
Kotlin Design Patterns and Best Practices - Second Edition
Published in: Jan 2022Publisher: PacktISBN-13: 9781801815727

Author (1)

author image
Alexey Soshin

Alexey Soshin is a software architect with 15 years of experience in the industry. He started exploring Kotlin when Kotlin was still in beta, and since then has been a big enthusiast of the language. He's a conference speaker, published writer, and the author of a video course titled Pragmatic System Design.
Read more about Alexey Soshin