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

ამ გზით, კოდი გახსნილია გაფართოებისთვის (ახალი ფიგურები), მაგრამ დახურული ცვლილებისთვის (არსებული კლასების შეცვლა).