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.