2. Avantajları
• Gerçek hayattaki her nesneyi programatik ortamda
modelleyebilmeyi sağlar.
• Kod’un yeniden kullanılabilirliğini sağlar.
• Uygulamanın bakım maliyetini düşürür.
• Programı «nesne» adı verilen küçük parçalara bölmeyi sağlar.
• Uygulama geliştirmeyi daha hızlı hale getirir.
• Karmaşık yazılımları basitleştirir.
3. Inheritance (Kalıtım)
• Varolan bir sınıfın özellik ve davranışlarını, bir alt sınıfın kendi
üyeleriymiş gibi kullanabilme yeteneğidir.
• Mevcut bir tipe yeni fonksiyonellikler eklenmek istendiğinde
veya birbiriyle ilişkili birçok sınıfın birçok ortak üyesi
bulunması durumunda,
• Birçok sınıfın çekirdek fonksiyonellikler içermesi gerektiğinde
kullanılır.
7. Avantajları
• Bakımı kolay uygulamayı geliştirmeyi sağlar.
• Genişletilebilir uygulama geliştirmeyi sağlar.
• Kötü kokulu kodları engeller.
8. Single Responsibility Principle
(Tek Sorumluluk Prensibi)
• Bir sınıfın değişmesi için tek bir sebebi olmalı, yani bir sınıfın
tek bir işi olması gerekir.
10. Liskov Substitution Principle
• Aynı arayüzü uygulayan tüm sınıflar, birbirlerinin yerine
kullanılabilir olmalıdır. Özel istisnai bir durum kesinlikle
oluşmamalıdır.
11. Interface Segregation Principle
(Arayüz Ayırma Prensibi)
• Bir sınıf kullanmadığı bir arayüzü uygulamak zorunda
kalmamalı, kullanmadıklara metodlara bağımlı olmamalıdır.
12. Dependency Inversion Principle
(Bağımlılıkları Tersine Çevirme
Prensibi)
• Yüksek seviyeli sınıflar, düşük seviyeli sınıflara somut olarak
bağımlı olmamalıdır. Yüksek seviyeli sınıflar alt seviyeli
sınıflara soyut olarak bağlanmalıdır.