Junior — Middle
Obyekt yönümlü proqramlaşdırma kontekstində açıq/bağlı prinsipini izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Obyekt yönümlü proqramlaşdırmada Açıqlıq/Qapalıq Prinsipi, proqram təminatı varlıqları (siniflə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ünlüyünü ifadə edir, bu da səhv riskini azaldır və dəstək prosesini sadələşdirir.
C#-da bu, çox vaxt abstraksiyalar, interfeyslər və irsiyyət vasitəsilə həyata keçirilir. Məsələn, yeni funksionallıq əlavə edərkən, mövcud kodu dəyişdirmək əvəzinə, interfeysi həyata keçirən yeni sinf yaradırıq.
Nümunə:
public interface IShape
{
double Area();
}
public class Circle : IShape
{
public double Radius { get; set; }
public double Area() => Math.PI * Radius * Radius;
}
public class Square : IShape
{
public double Side { get; set; }
public double Area() => Side * Side;
}
// İndi yeni fiqurlar əlavə etmək mümkündür, mövcud kodu dəyişmədən
Beləliklə, sistem yeni sinflər əlavə etməklə genişlənir, köhnələr isə dəyişdirilmir.