Reader small image

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

Product typeBook
Published inApr 2024
PublisherPackt
ISBN-139781805127765
Edition3rd Edition
Right arrow
Author (1)
Alexey Soshin
Alexey Soshin
author image
Alexey Soshin

Alexey Soshin is a software architect with 18 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 Deferred Value design pattern aims to provide a reference to the outcome of an asynchronous operation. You’ll find similar implementations in Java and Scala through Futures, and in JavaScript through Promises.

We touched upon deferred values earlier in Chapter 6, Threads and Coroutines, where we noted that Kotlin’s async() function returns a Deferred type, which is Kotlin’s take on this pattern.

Interestingly, this Deferred type is not just an example of the Deferred Value design pattern; it’s also an embodiment of the Proxy design pattern discussed in Chapter 3, Understanding Structural Patterns, as well as the State design pattern featured in Chapter 4, Getting Familiar with Behavioral Patterns.

To instantiate a new container for an asynchronous outcome, you can use Kotlin’s CompletableDeferred constructor like so:

val deferred = CompletableDeferred<String>()

To populate the Deferred value with a result...

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 - Third Edition
Published in: Apr 2024Publisher: PacktISBN-13: 9781805127765

Author (1)

author image
Alexey Soshin

Alexey Soshin is a software architect with 18 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