Sobes.tech
Middle

Ce este principiul deschiderii/închiderii (POP)?

sobes.tech AI

Răspuns de la AI

Principiul deschis/închis (Open/Closed Principle, OCP) este unul dintre cele cinci principii SOLID, care afirmă că entitățile software (clase, module, funcții) trebuie să fie deschise pentru extindere, dar închise pentru modificare.

Aceasta înseamnă că comportamentul sistemului poate fi extins fără a modifica codul existent, ceea ce crește stabilitatea și ușurința de întreținere.

De exemplu, dacă trebuie să adăugați o nouă funcționalitate, este mai bine să creați o nouă clasă care implementează interfața necesară sau moștenește din clasa de bază, în loc să modificați codul deja funcțional.

Exemplu în 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
    }
}

// Dacă trebuie să adăugați un nou tip de figură, creați o nouă clasă fără a modifica cele existente
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
    }
}

Astfel, codul este deschis pentru extindere (noi figuri), dar închis pentru modificarea claselor existente.