Sobes.tech
Junior — Middle

Nesne yönelimli programlama bağlamında açılış/kapanış ilkesini açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Nesne yönelimli programlamada Açık/Kapalı Prensibi, yazılım varlıklarının (sınıflar, modüller, fonksiyonlar) genişletmeye açık, ancak değişikliğe kapalı olması gerektiğini ifade eder.

Bu, sistem davranışının mevcut kodu değiştirmeden genişletilebileceği anlamına gelir, bu da hata riskini azaltır ve bakımı kolaylaştırır.

C#'ta bu genellikle soyutlamalar, arayüzler ve kalıtım kullanılarak başarılır. Örneğin, yeni bir işlevsellik eklerken, mevcut kodu değiştirmek yerine, arayüzü uygulayan yeni bir sınıf oluştururuz.

Örnek:

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

// Artık yeni şekiller ekleyebiliriz, mevcut kodu değiştirmeden

Bu şekilde, sistem yeni sınıflar eklenerek genişletilir, eski sınıflar değiştirilmez.