Sobes.tech
Middle

Was ist das Prinzip der Offenheit/Schließung (POS)?

sobes.tech KI

Antwort von AI

Das Prinzip der Offenheit/Geschlossenheit (Open/Closed Principle, OCP) ist eines der fünf SOLID-Prinzipien, das besagt, dass Softwareentitäten (Klassen, Module, Funktionen) offen für Erweiterungen, aber geschlossen für Änderungen sein sollten.

Das bedeutet, dass das Verhalten des Systems erweitert werden kann, ohne den bestehenden Code zu ändern, was die Stabilität und Wartbarkeit erhöht.

Zum Beispiel ist es besser, eine neue Klasse zu erstellen, die die erforderliche Schnittstelle implementiert oder von der Basisklasse erbt, anstatt den bereits funktionierenden Code zu ändern, wenn eine neue Funktionalität hinzugefügt werden soll.

Beispiel in Swift:

protocol Shape {
    func area() -> Double
}

class Circle: Shape {
    var radius: Double
    init(radius: Double) {
        self.radius = radius
    }
    func area() -> Double {
        return Double.pi * radius * radius
    }
}

class Rectangle: Shape {
    var width: Double
    var height: Double
    init(width: Double, height: Double) {
        self.width = width
        self.height = height
    }
    func area() -> Double {
        return width * height
    }
}

// Wenn eine neue Figur hinzugefügt werden soll, erstellen Sie eine neue Klasse, ohne die bestehenden zu ändern
class Triangle: Shape {
    var base: Double
    var height: Double
    init(base: Double, height: Double) {
        self.base = base
        self.height = height
    }
    func area() -> Double {
        return 0.5 * base * height
    }
}

Auf diese Weise ist der Code offen für Erweiterungen (neue Figuren), aber geschlossen für Änderungen an bestehenden Klassen.