Middle
Šta je princip otvorenosti/zatvorenosti (POZ)?
sobes.tech АИ
Одговор од АИ
Princip otvorenosti/zatvorenosti (Open/Closed Principle, OCP) je jedan od pet SOLID principa, koji kaže da softverske entitete (klase, module, funkcije) treba da budu otvorene za proširenje, ali zatvorene za modifikaciju.
To znači da se ponašanje sistema može proširiti bez promene postojećeg koda, što povećava stabilnost i olakšava održavanje.
Na primer, ako je potrebno dodati novu funkcionalnost, bolje je napraviti novu klasu koja implementira potrebni interfejs ili nasleđuje od osnovne klase, nego menjati već funkcionišući kod.
Primer u 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
}
}
// Ako je potrebno dodati novi tip figure, kreirajte novu klasu bez promene postojećih
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
}
}
Na ovaj način, kod je otvoren za proširenje (nove figure), ali zatvoren za promenu postojećih klasa.