https://kotlinlang.org logo
Title
m

miqbaldc

09/09/2021, 5:28 AM
Which one did you prefer: nested data class or higher-order data class? Code in 🧵
2️⃣ 5
1️⃣ 1
1️⃣ nested data class
data class TimeBasedHistoryDetail(
    val id: String,
    val attendanceValidation: AttendanceValidation?,
) {
    data class AttendanceValidation(
        val attendanceValidationQuestionSchema: AttendanceValidationQuestionSchema?,
    ) {
        data class AttendanceValidationQuestionSchema(
            val type: String?,
            val title: String?,
            val description: String?,
        )
    }
}
2️⃣ higher-order (I’m not sure what’s this called, cmiiw)
data class TimeBasedHistoryDetail(
    val id: String,
    val attendanceValidation: AttendanceValidation?,
)

data class AttendanceValidation(
    val attendanceValidationQuestionSchema: AttendanceValidationQuestionSchema?,
)

data class AttendanceValidationQuestionSchema(
    val type: String?,
    val title: String?,
    val description: String?,
)
m

Matteo Mirk

09/09/2021, 7:49 AM
“higher-order” is the wrong term, it means something completely different. The correct definition is “top level”
:thank-you: 1
:today-i-learned: 1
t

Tobias Berger

09/09/2021, 3:34 PM
I think both options are valid. I find 2️⃣ easier to read in the code, but 1️⃣ contains more information about the structure. However, when going with 1️⃣ , I would shorten
AttendanceValidationQuestionSchema
to just
QuestionSchema
to avoid redundant information in the class name
:thank-you: 2
7
:today-i-learned: 1