Middle
Какво е принципът на отвореност/затвореност (POP)?
sobes.tech AI
Отговор от AI
Принципът на отвореност/затвореност (Open/Closed Principle, OCP) е един от петте принципа SOLID и гласи, че софтуерните същности (класове, модули, функции) трябва да бъдат отворени за разширяване, но затворени за модификация.
Това означава, че поведението на системата може да бъде разширено без да се променя съществуващият код, което увеличава стабилността и удобството за поддръжка.
Например, ако трябва да добавите нова функционалност, е по-добре да създадете нов клас, който реализира необходимия интерфейс или наследява базовия клас, отколкото да променяте вече работещия код.
Пример на 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
}
}
// Ако трябва да добавите нов тип фигура, създайте нов клас без да променяте съществуващите
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
}
}
По този начин, кодът е отворен за разширение (нови фигури), но затворен за промяна на съществуващите класове.