Sobes.tech
Middle

Čo je princíp otvorenosti/zatvárania (POP)?

sobes.tech AI

Odpoveď od AI

Princíp otvorenosti/zatvorenosti (Open/Closed Principle, OCP) je jeden zo základných princípov SOLID a hovorí, že softvérové entity (triedy, moduly, funkcie) by mali byť otvorené na rozšírenie, ale zatvorené na zmenu.

To znamená, že správanie systému môže byť rozšírené bez zmeny existujúceho kódu, čo zvyšuje stabilitu a uľahčuje údržbu.

Napríklad, ak je potrebné pridať novú funkcionalitu, je lepšie vytvoriť novú triedu, ktorá implementuje požadované rozhranie alebo dedí od základnej triedy, než meniť už fungujúci kód.

Príklad v 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
    }
}

// Ak je potrebné pridať nový typ tvaru, vytvorte novú triedu bez zmeny existujúcich
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ýmto spôsobom je kód otvorený pre rozšírenie (nové tvary), ale zatvorený pre zmenu existujúcich tried.