Sobes.tech
Junior

Πώς μπορείτε να υλοποιήσετε πολλαπλούς κατασκευαστές σε μια κλάση σε Kotlin;

sobes.tech AI

Απάντηση από AI

Για τη δημιουργία πολλαπλών κατασκευαστών σε Kotlin, χρησιμοποιείται ο πρωτεύων κατασκευαστής και, αν χρειάζεται, ένας ή περισσότεροι δευτερεύοντες κατασκευαστές.

Ο πρωτεύων κατασκευαστής δηλώνεται άμεσα στην επικεφαλίδα της κλάσης:

class MyClass(primaryParam1: String, primaryParam2: Int) {
    // Σώμα της κλάσης
}

Οι δευτερεύοντες κατασκευαστές δηλώνονται με τη λέξη-κλειδί constructor:

class MyClass {
    // Πρωτεύων κατασκευαστής (υπαινιγμένος ή ρητός)

    constructor(param1: String) {
        // Λογική του δευτερεύοντος κατασκευαστή 1
    }

    constructor(param1: String, param2: Int) {
        // Λογική του δευτερεύοντος κατασκευαστή 2
    }
}

Εάν η κλάση έχει πρωτεύοντα κατασκευαστή, κάθε δευτερεύων κατασκευαστής πρέπει να αναθέτει την κλήση στον πρωτεύοντα κατασκευαστή, χρησιμοποιώντας τη λέξη-κλειδί this():

class MyClass(primaryParam: String) {

    constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
        // Λογική του δευτερεύοντος κατασκευαστή
    }
}

Επίσης, μπορούν να υπάρχουν πολλοί δευτερεύοντες κατασκευαστές που αναθέτουν στον πρωτεύοντα ή σε άλλους δευτερεύοντες κατασκευαστές (ακολουθώντας την ιεραρχία ανάθεσης):

class MyClass(primaryParam: String) {

    constructor(param1: String, param2: Int) : this(param1) {
        // Λογική του δευτερεύοντος κατασκευαστή 1
    }

    constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
        // Λογική του δευτερεύοντος κατασκευαστή 2
    }
}

Σημαντικά σημεία:

  • Το σώμα του πρωτεύοντος κατασκευαστή εκτελείται πριν από το σώμα των δευτερευόντων κατασκευαστών.
  • Οι ιδιότητες που δηλώνονται στην επικεφαλίδα του πρωτεύοντος κατασκευαστή μπορούν να είναι προσβάσιμες στο σώμα των δευτερευόντων κατασκευαστών.
  • Στο Kotlin, συνιστάται η χρήση του πρωτεύοντος κατασκευαστή και, εφόσον είναι δυνατόν, η αποφυγή των δευτερευόντων κατασκευαστών, προτιμώντας ονομασμένα επιχειρήματα ή μεθόδους εργοστασίου.