Sobes.tech
Middle

Kas yra atvirumo/uždarymo principas (AUP)?

sobes.tech AI

Atsakymas iš AI

Atviro/uždaro principas (Open/Closed Principle, OCP) yra vienas iš penkių SOLID principų ir teigia, kad programinės būtybės (klasės, moduliai, funkcijos) turėtų būti atviros plėtrai, bet uždarytos modifikacijai.

Tai reiškia, kad sistemos elgesį galima plėsti be esamo kodo keitimo, kas didina stabilumą ir priežiūros patogumą.

Pavyzdžiui, jei reikia pridėti naują funkcionalumą, geriau sukurti naują klasę, įgyvendinančią reikiamą sąsają arba paveldinčią iš bazinės klasės, nei keisti jau veikiančio kodo.

Swift pavyzdys:

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

// Jei reikia pridėti naują figūros tipą, sukurkite naują klasę, nekeičiant esamų
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
    }
}

Taip, kodas yra atviras plėtrai (nauji figūros tipai), bet uždaras keisti esamas klases.