Middle
Açıq olma/qapama prinsipi nədir (POP)?
sobes.tech Süni İntellekt
AI-dan cavab
Açıq/Qapalı Prinsipi (Open/Closed Principle, OCP) SOLID-in beş prinsipindən biridir və proqram təminatı varlıqları (sinflər, modullar, funksiyalar) genişlənməyə açıq, lakin dəyişikliklərə qapalı olmalıdır.
Bu, sistemin davranışını mövcud kodu dəyişmədən genişləndirmək mümkün olduğu anlamına gəlir, bu da stabilliyi və baxım asanlığını artırır.
Məsələn, yeni funksionallıq əlavə etmək lazım olsa, mövcud kodu dəyişdirmək yerinə, lazım olan interfeysi həyata keçirən və ya əsas sinifdən irs alan yeni sinf yaratmaq daha yaxşıdır.
Swift-də nümunə:
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
}
}
// Əgər yeni bir fiqur növü əlavə etmək lazımdırsa, mövcud sinifləri dəyişdirmədən yeni sinf yaradın
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
}
}
Beləliklə, kod yeni fiqurlar əlavə edilərək genişləndirilə bilər (yeni fiqurlar), lakin mövcud sinflərin dəyişdirilməsi qadağandır.