Hands-On Object-Oriented Programming with Kotlin: Build robust software with reusable code using OOP principles and design patterns in KotlinIgor Kucherenko5