Nesne Tabanlı Programlama (Object Oriented Programming)

Nesne tabanlı programlamada esas olan, gerçek hayatta var olan olguların programlamaya aktarılmasındaki yeni yaklaşımdır. Klasik prosedürel programlamada verilerimiz ve fonksiyonlarımız vardır. Yani her şey veri ve bu veriyi işleyen metotlar etrafında döner. Aslında nesne tabanlı programlamada da iki önemli birim; veri ve veriyi işleyip mantıklı sonuçlar üreten metotlar bulunur. Ama buradaki fark gerçek hayattaki olguların da daha iyi gözlenip programlama dünyasına aktarılmasındadır. Nesne yönelimli programlama; derli toplu kod yazmaya, yazılan kodları sınıflar halinde saklamaya ve sonra bu sınıfları tekrar kullanmayı sağlayan bir kod mimarisidir. Yani nesne yönelimli programlama bir nevi bir usuldür. Başka deyişle programcılara çeşitli yöntem ve desenler sunan kurallar bütünüdür.

Derslerimizde tam anlamıyla nesne tabanlı bir programlama olan C# dili, Visual Studio kullanarak anlatılır. Bu dil içerisinde sınıf kavramının önemli bir yeri vardır. Bu kavramı iyi anlamak, öğrencilerin her türlü teknikte, sınıfların avantajlarından yararlanmasını ve kendinize özgü nesnelere sahip olabilmesini sağlar. Zaten .NET teknolojisinde yer alan her nesne, mutlaka sınıflardan türetilmektedir.

Nesne yönelimli programlama, yazılım geliştirme için altı öncelikli hedef belirler. OOP aşağıdaki özellikleri taşıyan bir yazılım üretmeye çalışmaktadır:

Doğal: Bu sayede daha anlaşılır program yazılır ve geliştirilir.

Güvenilirlik: İyi tasarlanmış, özenle yazılmış nesne yönelimli programlar güvenilirdir. Modüler Nesnelerin doğası, programın bir bölümünü etkilemeden değişiklik yapmaya izin verir. Bilgi ve sorumluluğu tek bir yerde izole etmeyi sağlar. Bu yalıtım, her bir bileşeni bağımsız olarak test etmenizi ve doğrulamanızı sağlar.

Yeniden kullanılabilirlik: Bir inşaatçı, her evi inşa ederken yeni bir tuğla keşfi yapıyor mu? Elektrik mühendisi her devre tasarımı yaparken yeni bir direnç türünü keşfeder mi? Peki neden programcılar bir sorun çözüldükten sonra onu tekrar tekrar kullanmasın?

Sürdürülebilirlik: İyi tasarlanmış nesne yönelimli kod bakımlıdır. Bir hata, basitçe sorunu tek bir yerde düzeltilir. Uygulamada bir değişiklik şeffaf olduğu için diğer nesneler otomatik olarak donanımdan fayda sağlayacaktır.

Genişletilebirlik: OOP nesnelerin bir kütüphanesini oluştururken, aynı zamanda nesnelerinin işlevselliğini de ele alır. Yazılım statik değildir. Yazılımın büyümesini ve değişmesini de göz önünde bulundurmak gerekmektedir.

Zamandan Tasarruf: Modern yazılım projesinin yaşam döngüsü genellikle haftalarca sürebilir. OOP sayesinde bu süreç daha hızlı olmaktadır. Programınızı nesneler halinde oluşturulduysa eğer bir problem olduğunda birden fazla kod parçası üzerinde ayrı ayrı çalışılabilir hatta birden fazla geliştirici tarafından bağımsız olarak aynı anda problem çözülebilir.


Ansolon