Sobes.tech
Junior — Middle

Kannst du ein Beispiel geben, wie man das Prinzip der Offenheit/Schließung aus den SOLID-Prinzipien in der Entwicklungspraxis umsetzt?

sobes.tech KI

Antwort von AI

Das Prinzip der Offenheit/ Geschlossenheit besagt, dass Softwareentitäten offen für Erweiterungen, aber geschlossen für Änderungen sein sollten.

In der Android-Entwicklung kann dies beispielsweise durch die Verwendung von Abstraktionen und Vererbung umgesetzt werden. Anstatt eine bestehende Klasse zu ändern, erstellen wir eine neue Klasse, die die Funktionalität erweitert.

Beispiel:

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

// Implementierung für den Versand per Email
class EmailSender : NotificationSender {
    override fun send(message: String) {
        // Logik zum Versenden der Email
    }
}

// Später soll der Versand von SMS hinzugefügt werden, ohne EmailSender zu ändern, sondern durch eine neue Klasse
class SmsSender : NotificationSender {
    override fun send(message: String) {
        // Logik zum Versenden von SMS
    }
}

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

Auf diese Weise können wir, wenn wir eine neue Versandmethode für Benachrichtigungen hinzufügen möchten, das System erweitern, indem wir neue Klassen erstellen, ohne den bestehenden Code zu ändern.