En İyi Sorular
Zaman Çizelgesi
Sohbet
Bakış Açıları
Açıklık-kapalılık ilkesi
yazılım varlıklarının (sınıflar, modüller, işlevler, vb.) genişletmeye açık, ancak değiştirmeye kapalı olması gerektiğini belirten bir bilgisayar programlama ilkesi Vikipedi'den, özgür ansiklopediden
Remove ads
Açıklık-Kapalılık İlkesi (İngilizce: Open–closed principle), yazılım mühendisliğinde SOLID ilkelerinin ikincisidir ve ilk olarak 1988 yılında Bertrand Meyer tarafından tanımlanmıştır. Bu ilkeye göre, yazılım varlıkları (sınıflar, modüller, fonksiyonlar) geliştirmeye açık, ancak değişikliğe kapalı olmalıdır. Bu, sistemlerin yeni davranışlarla genişletilebilmesi gerektiği, ancak mevcut kaynak kodunun değiştirilmemesi gerektiği anlamına gelir.
Remove ads
Tarihçe
İlke, Bertrand Meyer tarafından 1988’de yayımlanan Object-Oriented Software Construction adlı kitapta tanıtılmıştır.[1]
1990’lı yıllarda Robert C. Martin (Uncle Bob), ilkeyi SOLID ilkeleri içinde yeniden tanımlamış ve özellikle nesne yönelimli yazılım geliştirmede daha geniş bir bağlamda ele almıştır.[2]
Özellikler
Bu ilke, var olan kodu değiştirmeden yeni özellikler eklemeyi amaçlayan bir yazılım tasarım yaklaşımıdır. Temel özellikleri:
- Kodun genişletilebilir olması
- Soyutlamalara dayalı yapı
- Polimorfizm ve arayüz kullanımı
- Bağımlılığın Tersine Çevrilmesi İlkesi ile birlikte çalışması
Uygulamalı örnek
- İlkeye aykırı yapı (java):
class ShapePrinter {
void print(Shape s) {
if (s instanceof Circle) {
// Daire çiz
} else if (s instanceof Square) {
// Kare çiz
}
}
}
- İlkeye uygun yapı (java):
interface Shape {
void draw();
}
class Circle implements Shape {
public void draw() {
// Daire çiz
}
}
class Square implements Shape {
public void draw() {
// Kare çiz
}
}
class ShapePrinter {
void print(Shape s) {
s.draw();
}
}
Remove ads
Etkileri
Açıklık-Kapalılık İlkesi, tasarım desenleri ve modüler yazılım geliştirme yaklaşımları için temel bir ilkedir. Aşağıdaki desenlerle doğrudan ilişkilidir:
- Strateji deseni
- Dekoratör deseni
- Şablon metot deseni
Bu ilke, sürdürülebilir, test edilebilir ve genişletilebilir sistemlerin geliştirilmesine katkı sağlar.
Tartışmalar
Aşırı soyutlama ve fazla arayüz kullanımı, küçük ve orta ölçekli projelerde gereksiz karmaşıklığa yol açabilir. Eleştiriler, bu ilkenin “her durumda” uygulanmasının bazı senaryolarda ters etki yaratabileceği yönündedir.[3]
Bununla birlikte büyük ölçekli yazılım projelerinde Açıklık-Kapalılık İlkesi, değişime dirençli sistemler inşa etmede önemli bir araç olarak kabul edilmektedir.
Kaynakça
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads