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
}
}
Осылайша, код кеңейтуге ашық (жаңа фигуралар), бірақ өзгертуге жабық (барлық сыныптар үшін).