Sobes.tech
Middle

Wat is het principe van openheid/sluiting (POP)?

sobes.tech AI

Antwoord van AI

Het Open/Closed-principe (OCP) is een van de vijf SOLID-principes, dat stelt dat software-entiteiten (klassen, modules, functies) open moeten staan voor uitbreiding, maar gesloten voor wijziging.

Dit betekent dat het gedrag van het systeem kan worden uitgebreid zonder de bestaande code te wijzigen, wat de stabiliteit en het onderhoudsgemak verhoogt.

Bijvoorbeeld, als je nieuwe functionaliteit wilt toevoegen, is het beter om een nieuwe klasse te maken die de benodigde interface implementeert of van de basisklasse erft, in plaats van de al werkende code te wijzigen.

Voorbeeld 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
    }
}

// Als je een nieuw type figuur wilt toevoegen, maak je een nieuwe klasse zonder de bestaande te wijzigen
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
    }
}

Op deze manier is de code open voor uitbreiding (nieuwe figuren), maar gesloten voor wijziging van bestaande klassen.