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
    }
}

Այսպիսով, կոդը բաց է ընդլայնման համար (նոր ձևեր), բայց փակ՝ փոփոխության համար արդեն գոյություն ունեցող դասերի։