Middle
Mi az nyitvatartási/zárási elv (POP)?
sobes.tech MI
Válasz az MI-től
A Nyitott/Zárt Elv (Open/Closed Principle, OCP) a SOLID öt alapelve közé tartozik, és kimondja, hogy a szoftver entitásoknak (osztályok, modulok, függvények) nyitottnak kell lenniük a bővítésre, de zártnak a módosításra.
Ez azt jelenti, hogy a rendszer viselkedése bővíthető anélkül, hogy a meglévő kódot módosítanánk, ezáltal növelve a stabilitást és a karbantarthatóságot.
Például, ha új funkciót kell hozzáadni, jobb új osztályt létrehozni, amely megvalósítja a szükséges interfészt vagy öröklődik az alap osztályból, ahelyett, hogy módosítanánk a már működő kódot.
Swift példával:
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
}
}
// Ha új alakzat típust kell hozzáadni, hozz létre egy új osztályt anélkül, hogy módosítanád a meglévőket
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
}
}
Így a kód nyitott a bővítésre (új alakzatok), de zárt a meglévő osztályok módosítására.