Sobes.tech
Middle

Šta je princip otvorenosti/zatvorenosti (POZ)?

sobes.tech АИ

Одговор од АИ

Princip otvorenosti/zatvorenosti (Open/Closed Principle, OCP) je jedan od pet SOLID principa, koji kaže da softverske entitete (klase, module, funkcije) treba da budu otvorene za proširenje, ali zatvorene za modifikaciju.

To znači da se ponašanje sistema može proširiti bez promene postojećeg koda, što povećava stabilnost i olakšava održavanje.

Na primer, ako je potrebno dodati novu funkcionalnost, bolje je napraviti novu klasu koja implementira potrebni interfejs ili nasleđuje od osnovne klase, nego menjati već funkcionišući kod.

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

// Ako je potrebno dodati novi tip figure, kreirajte novu klasu bez promene postojećih
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
    }
}

Na ovaj način, kod je otvoren za proširenje (nove figure), ali zatvoren za promenu postojećih klasa.