26 Aralık 2019 Perşembe

SOLID - O : Open Closed Principle

Open Closed Principle`nin amaci sistemin degisime kapali ama gelismeye acik olmasidir.Nedir bu?
Yazilimin surekli sabit kalmasi pek olasi birsey olmayabilir, iste bu sebeple yeni eklentiler yeni ozellikler eklenmek istenebilir , ama eklerken onceden yazdigimiz yerlerin degismesini istemeyiz burdaki degisim budur.OPC`nin dedigi gelisme; yeni ekledigimiz kisimlar oyle olmali ki yerine direk oturmalidir eski siniflarimizda degisiklik olmadan yeni ozellikler icin yeni kodlar ekleyerek gelisimi saglamamiz.Bir ornekle durumu anlasir kilalim.




Burdaki gibi bir yapimiz olsun market, ogrenci olanlara bir indirim uygulasin.Bir sure sonra ogretmen olanlara da bir indirim uygulanmak istensin.







Yeni ekleyecegimiz Ogretmen sinifini olusturduk buraya kadar bir problem yok.






Ama burada indirim hesalayan eski sinifimizi da degistirmek zorunda kaldik.Bu degisime kapali gelisime acik prensibine uymayan, bizimde istemedigimiz birsey.



Bunun icin soyut Profil sinifini olusturduk ve diger siniflarimizi buradan turettik.

















Indirim sinifimizdaki metodun parametresinide Profil tipinde kullandigimizda , artik her yeni gelen durum icin , ornegin doktor icin bir indirimde bu sinif etkilenmeyecek sadece yeni ekledigimiz sinifi soyut siniftan turetip metodunu doldurmamiz yeterli olacaktir.
Not :Interface ile de bunu uygulayabilirdik.







Hiç yorum yok:

Yorum Gönder