10 Kasım 2022 Perşembe

Open Closed Principle

Sınıflar, metodlar ve modüller değişiklik için kapalı, ancak genişleme için açık olmalıdır.
Anlamı
Eklemek istediğimiz her özellik için mevcut source koduna dokunmuyorsak bu sınıf değişime kapalıdır.
Aynı zamanda bir component, Yeni kod oluşturarak yeni şekillerde davranmamıza izin veriyorsa genişlemeye açıktır.

Schedulable'nin rahatlıkla farklı implementasyonlarını oluşturarak  genişleyebiliriz.Ve bu her yeni eklenen Employe,Equipment vs. Schedula sınıfınları sebebiyle Schedula sınıfında değişiklik yapmamıza gerek yok

Open Closed Principileyi uygulamanın 2 yolu vardır.

1- İnheritance
Kalıtım OCPyi uygulamanın güzel bir yoludur. Fakat kalıtımın dezavantajı base class ve sub class  arasında bağ oluşturuyor olmasıdır.

2- Strategy Desing Pattern
Strategy Patternde interface kullanıyoruz. Ve bu interafaceyi implement eden sınıflar birbirleri yerine kullanılabiliyor.

Hiç yorum yok:

Yorum Gönder