Nesneye Yönelik Programlamanın Temelleri ve Kullanım Şekilleri

Günümüz Programlama dillerin de en çok kullanılan yapı Nesne Tabanlı Programlama dilleri olarak öne çıkmaktadır. Özellikle 1990 sonrasında çok daha yaygın hale gelmiş bu programlama yapısı çok katmanlı mimarilerin güçlenmesini, Veritabanı programlamanın dinamiklerini oluşmasına etken olmuştur.

Nesne yönelimli programlamanın temellinde, günlük hayatta kullandığımız nesnelerin (kavram ve objelerin) bilgisayar programı içinde kullanılarak programlama tekniklerinin geliştirilmesine ön ayak olmuştur. Nesneye yönelik programlama paradigmalarını ve Nesneye yönelik programlama dillerinin kullanım nedenlerini anlayabilmek için öncelikle NYP’ nin yararlı yönlerini inceleyelim.

NYP, diğer programlama yaklaşımlarına nazaran yazılım ile uğraşanlara büyük kolaylıklar sağlamaktadır.

Bakım Kolaylığı (Maintenance): Katmanlı mimari içerisinde aynı konu ile ilişkili sınıflar bir araya getirilerek sınıf kümelerini oluşturmakta ve bakım sırasında mevcut sınıf kümelerinde değişiklik yapılmasını veya yeni sınıf kümelerinin oluşturulmasına olanak sağlamaktadır. Böylece Klasik Programlama dillerinden daha kolay ve daha az masraf ile proje geliştirmeye imkan vermektedir.

Genişletilebilirlik (Extensibility): Ayrıca Mevcut Sınıfa yeni Özellik ve Metodların eklenmesi ile işlevsellik de sağlanmış olacaktır.

Yeniden Kullanılabilirlik (Reusability): Bir başka yarar ise, Nesnelerin üretildiği sınıflar her uygulama geliştiricinin kullanımına açık olacak bir kütüphanenin olmasına olanak sağlayacaktır.

Yazılımların karmaşıklığı ve boyutları sürekli artmasıyla beraber nitelik düzeyini korumak ve yazılım maliyetlerini en aza indirmek için yazılımda birimserliği (modularity) benimsenmiştir.

Ayrıca yazılımın gerçek hayattaki problemleri bilgisayar ortamında çözümleyebilmesi için, problemin bilgisayar ortamına aktarılması işlemine tabi tutulmaktadır. Bu işleme “soyutlama (abstraction)” denmektedir. Örneğin: Diktörtgen ve Karenin kenarları ve köşeleri vardır, ikisinde de Çevre ve Alan Hesabı yapılabilmektedir. Aşağıda soyutlama için bir örnek yer almaktadır.

Public Class Dikdortgen Extends Sekil
{
Private int boy;
Private int en;
public int cevre()
{
return(2*(boy+en));
}
public int alan()
{
Return (boy*en);
}
}

NYP yaklaşımda uygulama geliştirilirken bir takım ilkeler eşliğinde kodlama yapılır. Bu ilkeler yazılan programda kodun değiştirilebilmesi ve yeniden kullanılabilmesine imkan vermektedir.Kodun değiştirilebilirliğine en büyük katkıyı Sarmalama (encapsulation) ilkesi sağlamaktadır. Sarmalama ilkesinde, bir sınıf içerisinde yer alan niteliklerin değerlerinin ancak o sınıfın içerisinde kodlanmış yöntemler tarafından değiştirilebilmesi ve okunabilmesi ilkesidir. Böylece nesnelerin durumları her zaman aynı kalabilir. Buna en güzel Örnek: Zaman kavramı verilebilir. Zaman Kavramı bir sınıf olarak tanımlanmış ise 24 saatlik dilimde ki kurallar dışında bir zaman dilimi tanımı yapılmaması gerekirdi. Bu da belli ilkeler eşliğinde kodlamaya olanak tanıyacaktır. Sarmallama ilkesi, niteliklere erişimi sınıfın içine kodlanan yöntemlerle sınırlandırarak kodun değiştirilebilirliğini arttıran ve bakımını kolaylaştıran ilkedir.

Kalıtım (inheritance) ise kodun yeniden kullanılabilirliğini sağlamasıdır. Ayrıca Çok biçimlilik (polymorphism) de kalıtım sayesinde gerçekleştirilebilmektedir. Örnek: Bir Ev sınıfı oluşturduğumuzda, oluşturduğumuz ev sınıfında tüm evler için kullanılabilinir özellikler olan kat numarası, oda sayısı, alanı, semti gibi özellikler olacak. Ev sınıfından bir Kiralık Ev sınıfı türetebiliriz ve bu sınıfımızda sadece kiralık evler için geçerli olan depozito ve kira özelliklerini ekleyebiliriz.

Nesneye yönelik programlamada (Polymorphism), nesnelerin içeride farklı çalışmalarına rağmen dışarıdan aynı biçimde görünmelerine denir. Bu şekilde, bir grup nesneyi kullanan class’lar implementation’ la ilgili detayları bilmek zorunda kalmazlar, içerideki değişikliklerden etkilenmeden çalışmaya devam ederler. Aynı class’ı extend eden veya aynı interface implement eden class’lar standart bir şekilde erişilebilme özelliklerine sahip olurlar.

Genel olarak NYP Paradigmaları yazılım kaynaklarının daha verimli kullanılabilirliğini sağlamış olup yazılımcının daha geniş yelpazede çalışabilmesine olanak tanımıştır. Daha verimli yazılan programlar maliyetlerinde düşmesine ve böylece kar düzeyini de yükseltmiştir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir