1.
solid prensiplerinin "o" harfine denk gelir.
yazdığımız kod gelişime açık değişime kapalı dersek cuk diye oturur. eğer yeni bir kod eklediğimizde mevcut projede kullandığımız kodu değiştiriyorsak open closed principle kurallarını bozmuş oluyoruz. peki mevcut kodlarımıza dokunmadan yeni kod nasıl eklenir?
c# dili için;
benim en pratik çözümüm interfacelerin, classların referansını tutabilmesini kullanmak. iş yapan fonksiyona interface gönderirsek, o interface implement ettiği sınıfların referansını tuttuğu için class hiyerarşisinden bağımsız polymorphisme izin verir. böylece o fonksiyona hangi class referansını yollarsak o class üzerinden çalışmaya başlar.
örnek kod:
![kullanıcı tarafından yüklenmiş görsel](https://media.normalsozluk.com/up/2021/06/17/lo2tszykw1ssga21-t.jpg)
![kullanıcı tarafından yüklenmiş görsel](https://media.normalsozluk.com/up/2021/06/17/1cc1qq4l7xr48zaa-t.jpg)
gördüğünüz gibi sadece oluşturduğum class referansını veriyorum. böylece ilerde cserver eklersem sadece new cserver(); yazmam yeterli olacaktır.
yazdığımız kod gelişime açık değişime kapalı dersek cuk diye oturur. eğer yeni bir kod eklediğimizde mevcut projede kullandığımız kodu değiştiriyorsak open closed principle kurallarını bozmuş oluyoruz. peki mevcut kodlarımıza dokunmadan yeni kod nasıl eklenir?
c# dili için;
benim en pratik çözümüm interfacelerin, classların referansını tutabilmesini kullanmak. iş yapan fonksiyona interface gönderirsek, o interface implement ettiği sınıfların referansını tuttuğu için class hiyerarşisinden bağımsız polymorphisme izin verir. böylece o fonksiyona hangi class referansını yollarsak o class üzerinden çalışmaya başlar.
örnek kod:
![kullanıcı tarafından yüklenmiş görsel](https://media.normalsozluk.com/up/2021/06/17/lo2tszykw1ssga21-t.jpg)
![kullanıcı tarafından yüklenmiş görsel](https://media.normalsozluk.com/up/2021/06/17/1cc1qq4l7xr48zaa-t.jpg)
gördüğünüz gibi sadece oluşturduğum class referansını veriyorum. böylece ilerde cserver eklersem sadece new cserver(); yazmam yeterli olacaktır.
devamını gör...