Nesne Yönelimli Programlama I
Nesne yönelimli programlama nesneler etrafında inşa edilmiş yazılım geliştirme yöntemidir. Bu yöntem veriyi en küçük parça olan nesnelere ayırır ve nesnenin içeriği ve davranışlarını sınıf olarak ifade eder. Gelişmiş diller nesne yönelimli programlama tekniği desteklemek için Kapsulleme(encapsulation), Miras Alma(Inheritance) ve Çok Biçimlilik(Polymorhpism) gibi özellikler bulundurur.
Kapsulleme: Kendi içlerinde ilişkili propertyler, metotlar ve diğer öğeler sadece bir nesne ya da birim olarak davranış gösterir.
Miras Alma: Var olan sınıfları temel alarak yeni sınıfların oluşturulması anlamına gelir.
Çok Biçimlilik: Proje içinde birbirinin yerine kullanılabilen sınıflar olabilir, bu sınıflar aynı property ve metodu farklı şekillerde uygulayabilir.
Nesne yönelimli programla aşağıdaki öğeleri içerir:
- Sınıflar ve Objeler
- Sınıf Üyeleri
- Propertyler ve Fieldlar
- Metotlar
- Yapıcılar (Constructors)
- Yıkıcılar (Destructors)
- Olaylar(Events)
- İçiçe Sınıflar(Nested Classes)
- Erişim Belirleyiciler ve Erişim Seviyeleri
- Örneklenir Sınıflar(Instantiating Classes)
- Statik Sınıflar ve Üyeler
- Genel Tipler(Anonymous Types)
- Miras Alma(Inheritance)
- Eziciler
- Interfaceler
- Genericler
- Delegeler
Avantajları
- Basitlik
- Modülerlik (Birimsellik)
- Değiştirilebilirlik
- Genişletilebilirlik
- Bakımı yapılabilirlik
- Tekrar kullanılabilirlik
Basitlik: Proje içinde oluşturulan nesnelerin hepsi projede kullanılacak nesnelerdir, kullanılmayacak bir nesne oluşturulmaz. Bu karmaşıklığın azalmasını sağlar ve proje yapısı daha anlaşılır olur.
Modülerlik (Birimsellik): Farklı görevlerin farklı metotlara ayrıştırılması hatta kimi zaman farklı nesnelere ayrıştırılması anlamına gelir. Her birimin kendi görevi vardır.
Değiştirilebilirlik: Veri tasarımında ya da prosedürlerde değişiklik yapmak oldukça kolaydır. Bir sınıfın içindeki değişiklik projenin diğer bölümlerini etkilemez ancak public interface üzerinde yaptığınız değişiklikler diğer sınıfları da etkileyebilir.
Genişletilebilirlik: Yeni özellikler ekleme yeni nesneler ya da tipler tanıtılarak çözülebilir.
Bakımı yapılabilirlik: Nesnelerin kolayca bakımı yapılabilir, sorunu belirleme ve çözme daha kolaydır.
Tekrar Kullanılabilirlik: Nesneler başka bir yazılım projesinde kullanılabilir ya da metotlar aynı yazılım içinde farklı yerlerde kullanılabilir.
Dezavantajları
- Boyut büyük olabilir.
- Fazla emek harcamanız gerekebilir.
- Yavaş çalışabilir.
- Her problem tipine uygun değildir.
Boyut büyük olabilir: Programlamanın ilk yıllarında sabit disk, disket ve belleklerde kapasite sorunu olduğu için programın boyutu önem teşkil etmekteydi fakat günümüzde böyle bir sınırlama bulunmamaktadır.
Fazla emek harcamanız gerekebilir: Nesne yönelimli projeler oluşturmak büyük bir çaba gerektirir. Büyük bir projenin planlaması büyük bir emek ve olay demektir. Genelde bu planlama için harcanan çaba birçok kişi tarafından zamanın boşa harcanması olarak düşünülür. Ayrıca programda daha çok kod yazıldığı için fazladan zaman ve emek harcamak gerekebilir.
Yavaş çalışabilir: Nesne yönelimli programlar genelde diğer programlardan daha yavaştır bunun bir bölümü boyutuyla ilgilidir. Ayrıca daha fazla sistem kaynağı kullanmak gerekir ve bu programı yavaşlatır. Fakat günümüzde işlemciler çok hızlı olduğu için fark edilmeyecek derecelerdedir.