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.