Open-Closed Principle

Yazılım bileşenleri (sınıflar, modüller, fonksiyonlar, vb.) genişletilmeye açık ancak değiştirilmeye kapalı olmalıdır.

2. OCP - Open-Closed Principle

Yazılım bileşenleri (sınıflar, modüller, fonksiyonlar, vb.) genişletilmeye açık ancak değiştirilmeye kapalı olmalıdır.

  • Open for extension, closed for modification

  • Amaç, bir bileşenin kodunu değiştirmeden davranışını değiştirmek.

  • Şablon: {Sınıf} {aksiyon / davranış} ile {görev}inden sorumludur.

  • Tasarım kalıpları:

    • Template Method

    • Strategy

  • Refactoring yöntemleri

    • Extract Interface

    • Parameterize Method

    • Form Template Method

  • Bir sınıfın implementasyonu sadece hata düzeltme amacıyla değiştirilir, yeni veya değişen özellikler için yeni sınıflar yaratılır.

  • Değişen bölümleri temel sınıftan ayır.

  • Türetme sıkı-eşleştirmeye (hard-coupling) neden olduğundan, mümkünse delege et.

  • private method → protected virtual (open-closed uygunluğu sağlar) (Javada tüm metotlar varsayılan olarak virtual’dır.)

Last updated