Blog
Nesne Yönelimli Programlama (OOP) Nedir?
- 26 Kasım 2021
- Yayınlayan: svahabi
- Kategori: Blog Yazıları
Yazılım projelerinin daha esnek hale getirilmesi ve kullanışlı olması açısından çeşitli yapılar kullanılmaktadır. Nesne tabanlı programlama (OOP) da yine bu yapılardan biri olup yazılım tasarımının işlev ve mantık yerine veri ya da nesneler tarafında düzenlenmesini sağlayan programlama dili modelidir. Günümüzde yazılım geliştirme teknolojilerinde nesne yönelimli programlama oldukça fazla kullanılmaktadır.
Nesne Yönelimli Programlama, her işlevin soyutlandığı bir programlama yöntemidir. Gerçek yaşamda görülen birçok nesnenin bilgisayar ortamına aktarılması olarak da nitelendirilebilir. Örneğin bir nesnenin rengi, durumu, üretim yılı ve ismi gibi çeşitli birçok özelliklerinin bilgisayar ortamı üzerinde gösterilmesi nesne programlamaya örnek gösterilebilir.
Yazılım sistemleri içerisinde karmaşıklığın azaltılması, belirli bir yapının kazandırılması ve projelerin olabildiğince soyutlaştırılması bakımından OOP programlama yöntemi çok fazla tercih edilmeye başlanmıştır. Nesne yönelimli programlama içerisinde sınıf ve nesne kavramları oldukça fazla ele alınmaktadır.
Sınıf, değişken ve metotların bir arada saklandığı sistemdir. Değişkenler kısaca ad, soyad, yaş gibi verilerdir. Metotlar ise bu verilerin toplanması gibi çeşitli görevleri yerine getiren sistemlerdir.
Nesne ise verileri saklayan, veriler üzerinde işlem gerçekleştiren metotları saklayan bileşenler olarak nitelendirilir.
Nesne Yönelimli Programlama Özellikleri
Nesne yönelimli programlama 4 özellik etrafında şekillenmiştir. Bunlar sırasıyla:
- Abstraction (Soyutlama)
- Encapsulation (Kapsülleme)
- Inheritance (Miras Alma)
- Polymorphism (Çok biçimlilik)
Soyutlama, bir sınıfa ait özellik ve davranışlarının tanımlanmasıdır. Örnek olarak bir ürüne ait ürün kodu, ürün adı, ürün adeti, ürün fiyatı gibi özelliklerdir. Ürüne ait çeşitli davranışlar ve metotlar da yine saklanır.
Kapsülleme ile özellik ve davranışların dışarıdan kullanılacağı belirlenir. Örnek olarak kişinin gizli tutulmak istenen bilgileri private edilerek, saklanarak, gizlenebilir. Bu olay kapsülleme olarak nitelendirilir. Kapsüllemede 3 temel yapı vardır. Bunlar sırasıyla private, public ve protected olarak ele alınır. Public, herkes tarafından erişilen ve kullanılan davranışlara verilen isimdir. Private, sadece kendi sınıfı içerisinde tanımlanıp kullanılan özellik ve davranışlardır. Protected ise sınıf ve kalıtım yoluyla miras alınan alt sınıflarda kullanıma açık olanlara verilen isimdir.
SOLID Prensipleri
Yazılım sistemleri geliştirilirken her zaman belli bir çatı ve yapı etrafında geliştirilir. Bu yapılardan biri de SOLID yapısı olup SOLID yapısı sayesinde geliştirilen yazılımların daha esnek, yeniden kullanılabilir, anlaşılır ve sürdürülebilir olması da sağlanır. SOLID yapısı ile amaçlanan olaylar şunlardır:
Geliştirilen yazılımların gelecekte taleplere kolayca adapte olabilmesi,
Yeni özelliklerin, kodlar üzerinde değişikliğe gerek duymadan kolayca eklenebilmesi,
Yeni ihtiyaçlara karşı kod tarafında değişimlerin asgari oranda sağlanması,
Kod tarafında sürekli düzeltme ve yeniden yazma gibi sorunlar ile karşılaşılmaması, bu gibi sorunların zaman kaybına yol açmaması
Tamamen esnek bir yapı sağlayan ve yazılım sistemlerinde verimliliği artıran SOLID yapısı kendi içerisinde çeşitli kategorilere de ayrılır. Bunlar sırasıyla;
S – Single Responsibility Principle
Bu yapıya göre bir sınıf veya nesne sadece bir amaç için değiştirilebilir. Bu da yine ilgili sınıfa yüklenen sorumluluktur. Özetle bir sınıfın yapması gereken sadece bir işi olması gerekmektedir.
Open Closed Principle
Bir fonksiyon ya da sınıf, var olan özelliklerini korumalı ve değiştirilmeye izin vermemelidir. Özet olarak ilgili sınıf veya fonksiyon davranışını değiştirmemeli, yeni özellikler de kazanmalıdır.
L – Liskov Substitution Principle
Liskov prensibine göre kodlar üzerinde herhangi bir değişiklik yapılmadan alt sınıfları, üst sınıfları yerine kullanmak gerekir.
I – Interface Segregation Principle
Interface yapısında sorumlulukların hepsi tek bir ara yüzde toplanması yerine daha özelleştirilen birden çok ara yüzlere dağıtılması gerekmektedir.
D – Dependency Inversion Principle
Bu prensibe göre yazılım projelerindeki sınıflar arasındaki bağımlılıklar az olmalıdır. Özellikle de üst seviyedeki sınıfların alt seviyedeki sınıflara bağımlı olması engellenmelidir.
Daha esnek projelerin gerçekleştirilmesi, sınıfların kendi aralarında bağımsız tutularak çeşitli ara yüzler üzerinde fonksiyonların yazılabilmesi için tercih edilen SOLID yapısının projelere entegre edilmesiyle birlikte projelerde istenen verime ulaşılabilir.
İleri Yazılım ve Mimari Geliştirme Eğitimi
Yazılım sektöründe kariyer yapmak, kendini geliştirmek ve sektörde kıdemli seviyesine gelmek isteyen kişilerin bu süreçte sürekli olarak gelişim aşamalarında olması, gerektiğinde de çeşitli kurumlardan eğitim alarak sektörde daha iyi yerlere gelmelidir. Yazılım mühendisleri, yazılım geliştiricileri, bilgisayar programcıları da başta olmak üzere yazılım alanına ilk defa giriş yapan kişiler de yine bu eğitim süreçlerine tabi olarak kendilerini daha da geliştirebilirler.
Kurslarımız arasında yer alan ve yazılım programlarında SOLID yapısı, nesneye yönelimli programlama yapısı gibi çeşitli esnek yapıları da sunan İleri Yazılım ve Mimari Geliştirme Eğitimine sizler de katılım gösterebilirsiniz. Eğitim sonunda yazılım anlamında kendinizi daha iyi geliştirebilir, sektörde bilgi, birikiminizi artırabilir ve tecrübe sahibi de olabilirsiniz.
İleri Yazılım ve Mimari Geliştirme eğitimimizi detaylı bir şekilde incelemek için tıklayınız…
Güncel eğitim takvimimizi görüntülemek için tıklayınız…