Sobes.tech
Junior — Middle

Kun je een voorbeeld geven van hoe je het principe van openheid/sluitbaarheid uit de SOLID-principes in de praktijk kunt toepassen?

sobes.tech AI

Antwoord van AI

Het Open/Closed-principe zegt dat software-entiteiten open moeten staan voor uitbreiding, maar gesloten voor modificatie.

In Android-ontwikkeling kan dit bijvoorbeeld worden gerealiseerd door gebruik te maken van abstracties en erfelijkheid. In plaats van een bestaande klasse te wijzigen, maken we een nieuwe klasse die de functionaliteit uitbreidt.

Voorbeeld:

// Basissinterface
interface NotificationSender {
    fun send(message: String)
}

// Implementatie voor verzending via e-mail
class EmailSender : NotificationSender {
    override fun send(message: String) {
        // logica voor het verzenden van e-mail
    }
}

// Later moet je SMS-verzending toevoegen, zonder EmailSender te wijzigen, maar door een nieuwe klasse toe te voegen
class SmsSender : NotificationSender {
    override fun send(message: String) {
        // logica voor het verzenden van SMS
    }
}

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

Op deze manier, als je een nieuwe manier van notificaties verzenden wilt toevoegen, breiden we het systeem uit door nieuwe klassen te maken, zonder de bestaande code te wijzigen.