Middle
Ochiq/ Yopiq tamoyili nima (OYT)?
sobes.tech AI
AIdan javob
Ochiq/Yopiq Prinsipi (Open/Closed Principle, OCP) SOLID ning besh prinsiplaridan biridir va dasturiy ta'minot ob'ektlari (sinflar, modullar, funksiyalar) kengayishga ochiq, lekin o'zgartirishga yopiq bo'lishi kerakligini ta'kidlaydi.
Bu shuni anglatadiki, tizimning xulq-atvorini mavjud kodni o'zgartirmasdan kengaytirish mumkin, bu esa barqarorlik va xizmat ko'rsatish qulayligini oshiradi.
Masalan, agar yangi funksionallik qo'shish kerak bo'lsa, mavjud kodni o'zgartirmasdan, kerakli interfeysni amalga oshiradigan yoki asosiy sinfdan meros oladigan yangi sinf yaratish yaxshiroqdir.
Swift misoli:
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
}
}
// Agar yangi figura turi qo'shilishi kerak bo'lsa, mavjud sinflarni o'zgartirmasdan yangi sinf yaratiladi
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
}
}
Shunday qilib, kod kengaytirishga ochiq (yangi figuralar uchun), lekin mavjud sinflarni o'zgartirishga yopiq bo'ladi.