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.