Sobes.tech
Middle

Cos'è il principio di apertura/chiusura (POC)?

sobes.tech AI

Risposta dell'AI

Il Principio di Apertura/Chiusura (Open/Closed Principle, OCP) è uno dei cinque principi SOLID, che afferma che le entità software (classi, moduli, funzioni) dovrebbero essere aperte all’estensione, ma chiuse alla modifica.

Ciò significa che il comportamento del sistema può essere esteso senza modificare il codice esistente, aumentando così la stabilità e la facilità di manutenzione.

Ad esempio, se è necessario aggiungere una nuova funzionalità, è meglio creare una nuova classe che implementa l’interfaccia richiesta o eredita dalla classe base, piuttosto che modificare il codice già funzionante.

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

// Se si desidera aggiungere un nuovo tipo di figura, si crea una nuova classe senza modificare quelle esistenti
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
    }
}

In questo modo, il codice è aperto all’estensione (nuove figure), ma chiuso alla modifica delle classi esistenti.