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.
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