Sobes.tech
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.