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

Context receivers

At the beginning of this book, we explored one of Kotlin’s most characteristic features: extension functions. These functions allow us to add methods to classes without modifying their original definitions, thanks to a clever compiler technique.

Despite their remarkable capabilities, extension functions have limitations, particularly noticeable to library authors. In this section, we’ll illustrate these limitations using an imaginary database framework as an example.

In Chapter 11, Concurrent Microservices with Ktor, we will examine the Exposed framework, which provides a Kotlin-native approach for interacting with relational databases. This framework serves as a real-world inspiration for our exploration.

For now, let’s consider two interfaces essential for our discussion.

First, the Transaction interface, facilitating database transactions:

interface Transaction {
    fun commit()
    fun rollback()
}

Next, an interface...

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