Middle
Mis on avamise/sulgimise põhimõte (ASP)?
sobes.tech AI
Vastus AI-lt
Avatud/Suletud põhimõte (Open/Closed Principle, OCP) on üks SOLID viiest põhimõttest ja ütleb, et tarkvaraüksused (klassid, moodulid, funktsioonid) peaksid olema avatud laiendamiseks, kuid suletud muutmiseks.
See tähendab, et süsteemi käitumist saab laiendada ilma olemasolevat koodi muutmata, mis suurendab stabiilsust ja hoolduskergust.
Näiteks, kui on vaja lisada uus funktsionaalsus, on parem luua uus klass, mis rakendab vajalikku liidest või pärineb baasklassist, selle asemel, et muuta juba töötavat koodi.
Swift näide:
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
}
}
// Kui on vaja lisada uus figuuri tüüp, loo uus klass ilma olemasolevaid muutmata
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
}
}
Seega on kood avatud laiendamiseks (uued figuurid), kuid suletud muutmiseks olemasolevate klasside osas.