One of the most common ways to parameterize classes is by using values. This is quite simple, and it is achieved by passing different values for the constructor parameters of a class. In the following example, we can pass different values for the name parameter of the Person class, and this is how we create different instances:
case class Person(name: String)
This way, we can create different instances and distinguish them, but this is neither interesting nor rocket science. Going further, we will focus on some more interesting parameterizations that will help us improve our code.