Sobes.tech
Middle

Na czym polega zasada otwartości/zamknięcia (POZ)?

sobes.tech AI

Odpowiedź od AI

Zasada otwarto-zamknięcia (Open/Closed Principle, OCP) jest jednym z pięciu zasad SOLID, które mówią, że encje programistyczne (klasy, moduły, funkcje) powinny być otwarte na rozszerzenia, ale zamknięte na modyfikacje.

Oznacza to, że zachowanie systemu można rozszerzać bez zmiany istniejącego kodu, co zwiększa stabilność i ułatwia konserwację.

Na przykład, jeśli trzeba dodać nową funkcjonalność, lepiej utworzyć nową klasę implementującą wymaganą interfejs lub dziedziczącą z klasy bazowej, niż modyfikować już działający kod.

Przykład w 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
    }
}

// Jeśli trzeba dodać nowy typ figury, tworzymy nową klasę bez zmiany istniejących
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
    }
}

W ten sposób kod jest otwarty na rozszerzenia (nowe figury), ale zamknięty na modyfikacje istniejących klas.