Middle
Co je to princip otevřenosti/zavřenosti (POZ)?
sobes.tech AI
Odpověď od AI
Princip otevřenosti/zavřenosti (Open/Closed Principle, OCP) je jedním z pěti principů SOLID a říká, že softwarové entity (třídy, moduly, funkce) by měly být otevřené pro rozšíření, ale uzavřené pro změnu.
To znamená, že chování systému lze rozšířit bez změny stávajícího kódu, což zvyšuje stabilitu a usnadňuje údržbu.
Například, pokud je potřeba přidat novou funkčnost, je lepší vytvořit novou třídu, která implementuje požadované rozhraní nebo dědí ze základní třídy, než měnit již fungující kód.
Pří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
}
}
// Pokud je potřeba přidat nový typ tvaru, vytvořte novou třídu bez změny stávajících
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ím je kód otevřen pro rozšíření (nové tvary), ale uzavřen pro změnu stávajících tříd.