Creating classes whose primary purpose is to hold data is a common pattern in Kotlin (is a common pattern in other languages too, think of JSON or Protobuff).
Kotlin has a particular kind of class for this purpose:
data class Item(val product: BakeryGood,
val unitPrice: Double,
val quantity: Int)
To declare data class, there are some restrictions:
- The primary constructor should have at least one parameter
- The primary constructor's parameters must be val or var
- Data classes can't be abstract, open, sealed, or inner
With these restrictions, data classes give a lot of benefits.