Sobes.tech
Middle

Ποια πρότυπα αντιπροσώπων γνωρίζετε;

sobes.tech AI

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

  • by lazy — χρησιμοποιείται για την καθυστερημένη αρχικοποίηση ιδιότητας. Η τιμή υπολογίζεται κατά την πρώτη αναφορά στην ιδιότητα και αποθηκεύεται στην cache.
    val lazyValue: String by lazy {
        println("initialized") // Θα εκτελεστεί μόνο κατά την πρώτη αναφορά
        "Hello"
    }
    
  • Delegates.observable — delegate που επιτρέπει την εκτέλεση ενέργειας σε κάθε αλλαγή της τιμής της ιδιότητας.
    import kotlin.properties.Delegates
    
    var name: String by Delegates.observable("αρχική τιμή") {
        prop, old, new ->
        println("Η τιμή για ${prop.name} άλλαξε από $old σε $new")
    }
    
  • Delegates.vetoable — delegate που επιτρέπει την παρεμβολή στην αλλαγή της τιμής της ιδιότητας και την ακύρωσή της βάσει μιας συνθήκης.
    import kotlin.properties.Delegates
    
    var age: Int by Delegates.vetoable(10) {
        prop, old, new ->
        new >= 0 // Επιτρέπονται μόνο μη αρνητικές τιμές
    }