Sobes.tech
Middle

Kas ir atvēršanas/slēgšanas princips (ASP)?

sobes.tech AI

Atbilde no AI

Atvērta/slēgta princips (Open/Closed Principle, OCP) ir viens no pieciem SOLID principiem un teic, ka programmatūras būtības (klases, moduļi, funkcijas) jābūt atvērtām paplašināšanai, bet slēgtām modifikācijai.

Tas nozīmē, ka sistēmas uzvedību var paplašināt bez esošā koda maiņas, kas palielina stabilitāti un uzturēšanas ērtumu.

Piemēram, ja nepieciešams pievienot jaunu funkcionalitāti, labāk ir izveidot jaunu klasi, kas īsteno nepieciešamo saskarni vai manto no bāzes klases, nevis mainīt jau darbojošo kodu.

Swift piemērs:

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

// Ja nepieciešams pievienot jaunu figūras tipu, izveidojiet jaunu klasi, nemainot esošās
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
    }
}

Tādējādi kods ir atvērts paplašināšanai (jauni figūras tipi), bet slēgts izmaiņām esošajās klasēs.