Yine Jacquie Barker kitabında soyutlama ile ilgili şöyle bir örnek veriyor. Biyoloji kitaplarındaki hücre şekillerini düşünün. Aslinda içinde milyonlarca yapı olmasına rağmen sadece mitokondri, çekirdek hücre zarı gibi önemli kısımlarını gösterirler. Çünkü küçük küçük milyonlarcasını açıklamaya gerek yoktur; çekirdek, mitokondri gibi önemli yapılar hücre nesnesini genellerler.
Bunların OO ile ne alakası var peki? Bir OO modellemesi yaparken elimizdeki her şey bir nesnedir. Yani sistemi kurarken ele alacağımız her nesneyi ilk örneğimizde nasıl kalemliğimize baktığımızda daha birçok özelliğini keşfetmişsek kuracağımız sistemde kullanacağımız nesnelerinde karakteristik özelliklerini bu şekilde bulmalıyız. Fakat bir nesnenin yüzlerce özelliği çıkabilir. Bu durumda da ikinci örnekte olduğu gibi hücrenin milyonlarca yapısı olduğu halde kitaplarda bizim işimize yarayacakları alıp hücre genellemesi yapıyorlarsa bizde kuracağımız sistemdeki nesnelerin özelliklerini bulduktan sonra işimize yarayacak özelliklerini özenle seçip genelleme yapmalıyız. Çünkü gereksiz seçilen özellikler sistemi karmaşık içinden çıkılamaz hala getirirken ayni şekilde gerekli olduğu halde seçilmeyen özellikler ise sistemde sorunlara neden olur. Mesela bir sistem kurulurken yazılım yapacak kullanıcıların göz renklerinin sisteme alınması sadece sistemi karmaşık bir hale getirecektir çünkü böyle bir bilgiye ihtiyaç duyulmayacaktır. Yani kısaca nesnelerin özelliklerinin isteklerimizi karşılayacak bir şekilde bulunup, gereksizlerin soyutlanması OO bir sistem modellerken bizim en önemli uğraşımız olacaktır.
Doğru bir şekilde modellenen sistem aynı zamanda esnek bir yapıya sahip olmalıdır. Çünkü herhangi bir şey yanlış ise veya bir şey değiştirilmek istenirse eğer sistem esnek bir şekilde tasarlanmışsa ufak birkaç ekleme ile istenilen gerçekleşebilir. Fakat esnek bir yapısı yoksa sistemin yeniden modellemesi gerekir, kodların yeniden yazılması gerekir yani zaman ve para kaybıdır. Bu yüzden esnek yapı doğru modellenen sitemin en önemli özelliklerindendir.
Ama her ne kadar modelleme yaparken soyutlama beynimizin gereksiz uyarıları algılamamasına benzese de durumun bu kadar kolay olmayacağı kesin gibi. İlerleyen yazılarımda bunun ne kadar kolay ne kadar zor olduğunu birlikte göreceğiz.
0 yorum:
Yorum Gönder