Sobes.tech
Junior — Middle

Kas saaks anda näite, kuidas rakendada SOLID põhimõtete avatus/suletavus põhimõtet praktikas?

sobes.tech AI

Vastus AI-lt

Avatud/ suletud põhimõte ütleb, et tarkvaraüksused peaksid olema avatud laiendamiseks, kuid suletud muutmiseks.

Androidi arenduses saab seda näiteks teostada abstraktsioonide ja päriluse kasutamise kaudu. Selle asemel, et olemasolevat klassi muuta, loome uue klassi, mis laiendab funktsionaalsust.

Näide:

// Põhiline liides
interface NotificationSender {
    fun send(message: String)
}

// Emaili saatmise implementatsioon
class EmailSender : NotificationSender {
    override fun send(message: String) {
        // emaili saatmise loogika
    }
}

// Hiljem on vaja lisada SMS saatmine, ilma EmailSenderit muutmata, lisame uue klassi
class SmsSender : NotificationSender {
    override fun send(message: String) {
        // SMS saatmise loogika
    }
}

// Kasutus
fun notifyUser(sender: NotificationSender, message: String) {
    sender.send(message)
}

Nii, kui soovite lisada uue teavitamise meetodi, laiendame süsteemi, luues uusi klasse, ilma olemasolevat koodi muutmata.