Sobes.tech
Middle

Mis on avamise/sulgimise põhimõte (ASP)?

sobes.tech AI

Vastus AI-lt

Avatud/Suletud põhimõte (Open/Closed Principle, OCP) on üks SOLID viiest põhimõttest ja ütleb, et tarkvaraüksused (klassid, moodulid, funktsioonid) peaksid olema avatud laiendamiseks, kuid suletud muutmiseks.

See tähendab, et süsteemi käitumist saab laiendada ilma olemasolevat koodi muutmata, mis suurendab stabiilsust ja hoolduskergust.

Näiteks, kui on vaja lisada uus funktsionaalsus, on parem luua uus klass, mis rakendab vajalikku liidest või pärineb baasklassist, selle asemel, et muuta juba töötavat koodi.

Swift näide:

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

// Kui on vaja lisada uus figuuri tüüp, loo uus klass ilma olemasolevaid muutmata
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
    }
}

Seega on kood avatud laiendamiseks (uued figuurid), kuid suletud muutmiseks olemasolevate klasside osas.