Açıklık-kapalılık ilkesi - Vikipedi
İçeriğe atla
Ana menü
Gezinti
  • Anasayfa
  • Hakkımızda
  • İçindekiler
  • Rastgele madde
  • Seçkin içerik
  • Yakınımdakiler
Katılım
  • Deneme tahtası
  • Köy çeşmesi
  • Son değişiklikler
  • Dosya yükle
  • Topluluk portalı
  • Wikimedia dükkânı
  • Yardım
  • Özel sayfalar
Vikipedi Özgür Ansiklopedi
Ara
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç

İçindekiler

  • Giriş
  • 1 Tarihçe
  • 2 Özellikler
    • 2.1 Uygulamalı örnek
  • 3 Etkileri
  • 4 Tartışmalar
  • 5 Kaynakça

Açıklık-kapalılık ilkesi

  • العربية
  • Català
  • Deutsch
  • English
  • Español
  • فارسی
  • Français
  • עברית
  • Magyar
  • İtaliano
  • 日本語
  • 한국어
  • Nederlands
  • Polski
  • Português
  • Русский
  • Svenska
  • Українська
  • 中文
Bağlantıları değiştir
  • Madde
  • Tartışma
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Araçlar
Eylemler
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Genel
  • Sayfaya bağlantılar
  • İlgili değişiklikler
  • Kalıcı bağlantı
  • Sayfa bilgisi
  • Bu sayfayı kaynak göster
  • Kısaltılmış URL'yi al
  • Karekodu indir
Yazdır/dışa aktar
  • Bir kitap oluştur
  • PDF olarak indir
  • Basılmaya uygun görünüm
Diğer projelerde
  • Vikiveri ögesi
Görünüm
Vikipedi, özgür ansiklopedi
(OCP sayfasından yönlendirildi)
SOLID
  • Tek sorumluluk ilkesi
  • Açıklık-kapalılık ilkesi
  • Liskov'un yerine geçme ilkesi
  • Arayüz ayrımı ilkesi
  • Bağımlılığın tersine çevrilmesi ilkesi
  • g
  • t
  • d

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.

Tarihçe

[değiştir | kaynağı değiştir]

İ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

[değiştir | kaynağı değiştir]

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

[değiştir | kaynağı değiştir]
  • İ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();
    }
}

Etkileri

[değiştir | kaynağı değiştir]

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

[değiştir | kaynağı değiştir]

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

[değiştir | kaynağı değiştir]
  1. ^ Meyer, Bertrand. Object-Oriented Software Construction. Prentice Hall, 1988. ISBN 978-0136291558.
  2. ^ Martin, Robert C. Agile Software Development, Principles, Patterns, and Practices. Prentice Hall, 2002. ISBN 978-0135974445.
  3. ^ "SOLID Relevance Today". 13 Mayıs 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Mayıs 2025. 
"https://tr.wikipedia.org/w/index.php?title=Açıklık-kapalılık_ilkesi&oldid=35762606" sayfasından alınmıştır
Kategoriler:
  • Yazılım geliştirme
  • Yazılım tasarımı
  • SOLID ilkeleri
Gizli kategori:
  • ISBN sihirli bağlantısını kullanan sayfalar
  • Sayfa en son 01.46, 4 Ağustos 2025 tarihinde değiştirildi.
  • Metin Creative Commons Atıf-AynıLisanslaPaylaş Lisansı altındadır ve ek koşullar uygulanabilir. Bu siteyi kullanarak Kullanım Şartlarını ve Gizlilik Politikasını kabul etmiş olursunuz.
    Vikipedi® (ve Wikipedia®) kâr amacı gütmeyen kuruluş olan Wikimedia Foundation, Inc. tescilli markasıdır.
  • Gizlilik politikası
  • Vikipedi hakkında
  • Sorumluluk reddi
  • Davranış Kuralları
  • Geliştiriciler
  • İstatistikler
  • Çerez politikası
  • Mobil görünüm
  • Wikimedia Foundation
  • Powered by MediaWiki
Açıklık-kapalılık ilkesi
Konu ekle