Immutable and verbose

Without getting into too much detail, let's see what an example application would look like:

object UserVerboseExample {  def main(args: Array[String]): Unit = {    val uk = Country("United Kingdom", "uk")    val london = City("London", uk)    val buckinghamPalace = Address(1, "Buckingham Palace Road", london)    val castleBuilders = Company("Castle Builders", buckinghamPalace)    val switzerland = Country("Switzerland", "CH")    val geneva = City("geneva", switzerland)    val genevaAddress = Address(1, "Geneva Lake", geneva)    val ivan = User("Ivan", castleBuilders, genevaAddress)    System.out.println(ivan)    System.out.println("Capitalize UK code...")    val ivanFixed = ivan.copy(      company = ivan.company.copy( address = ivan.company.address.copy( ...

Get Scala Design Patterns - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.