Middle
Ачыктык/жабыктык принциби эмне (АЖП)?
sobes.tech AI
AIден жооп
Ачык/Жабык принципи (Open/Closed Principle, OCP) SOLID беш принциптин бири болуп саналат жана ал программалык объектилер (сыныптар, модулдар, функциялар) кеңейүүгө ачык, бирок өзгөртүүгө жабык болушу керектигин айтат.
Бул системанын жүрүм-турумун өзгөртүүсүз кеңейтүүгө болот дегенди билдирет, бул туруктуулукту жана тейлөө жеңилдигин жогорулатат.
Мисалы, эгер жаңы функциялду кошуу керек болсо, ал керек интерфейсти ишке ашыратган же негизги класстан мурас алган жаңы класс түзүү жакшыраак, азыркы иштеп жаткан кодду өзгөртүүнүн ордуна.
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
}
}
// Эгер жаңы фигура түрүн кошуу керек болсо, жаңы класс түзүңүз, азыркы класстарды өзгөртпөстөн
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
}
}
Ошентип, код жаңы фигуралар менен кеңейе алат (кеңейтүү), бирок бар класстарды өзгөртүүгө жабык бойдон калат.