Nesne yönelimli programlamada soyutlama nedir?
Soyutlama, nesneye yalnızca ilgili ayrıntıları göstermek için daha büyük bir havuzdan veri seçmektir. Programlama karmaşıklığını ve çabayı azaltmaya yardımcı olur. Java’da soyutlama soyut sınıflar ve arayüzler kullanılarak gerçekleştirilir. OOP’ların en önemli kavramlarından biridir.
Örnekle Soyutlama konseptini inceleyelim
Bir satış firması uygulaması oluşturmak istediğinizi ve müşterinizle ilgili tüm bilgileri toplamanızı istediğinizi varsayalım. Müşteri hakkında aşağıdaki bilgileri içeren bir oluşturduğumuzu düşünelim.
1 2 3 4 5 6 7 8 9 10 11 | ad soyad telefon mail adres favoriyemek favorirenk tutugutakim |
Ancak, yukarıdaki bilgilerin tamamı bir satış firması uygulaması oluşturmak için gerekli değil.
Yani, alış veriş uygulamanız için sadece o havuzdan yararlı bilgileri seçmeniz gerekiyor. Online ticaret uygulaması için ad,soyad, adres,mail vb. veriler almak mantıklıdır.
1 2 3 4 5 6 7 | ad soyad telefon mail adres |
Gerekli olan müşteri bilgilerini daha büyük bir havuzdan ayıklma işlemine soyutlama olarak adlandırılır.
Böylelikle veriler ayıklandıktan sonra aynı bilgi geniş bir uygulama yelpazesinde kullanılabilir. Örneğin, aynı verileri hastane uygulaması, iş portalı uygulaması, hükümet veritabanı vb. Çok az değişiklikler yaparak farklı uygulamalarda kullanma imkanımız olur. Bu veriler ana verilerimiz olur ki farklı uygulamalarda kullanma imkanımız olur. Bu, soyutlamanın bir avantajıdır.
Soyutlama nasıl elde edilir?
Daha yüksek bir seviyede, soyutlama, uygulama ayrıntılarını gizleme ve yalnızca kullanıcıya işlevselliği gösterme bir sürecidir. Sadece kullanıcıya önemli şeyleri gösterir ve iç detayları gizlenir.
Soyut sınıf
“abstract” olarak nitelendirilen bir sınıf, soyut bir sınıf olarak adlandırılır. Somut methodların yanı sıra soyut methodlara da sahip olabilir. Normal sınıfın soyut methodlar olamaz.
Soyut method
Bir bedeni olmayan bir yöntem, Soyut Metot olarak bilinir. Soyut methodlar sadece soyut sınıflarda beyan edilmelidir. Soyut method asla nihai olmayacaktır, bu yüzden soyut sınıftan oluşturulan sınıflar bu metodları oluşturmak zorundadır.
Soyut Metot Kuralları
- Soyut yöntemlerin(method) bir uygulaması yoktur; sadece yöntem imzası var
- Bir sınıf soyut bir yöntem kullanıyorsa, soyut olarak beyan edilmelidir. Tam tersi doğru olamaz. Bu, soyut bir sınıfın mutlaka soyut bir yönteme sahip olmadığı anlamına gelir.
- Eğer normal bir sınıf soyut bir sınıf genişletirse, o sınıf soyut ebeveynin tüm soyut yöntemlerini uygulamalıdır.
Soyutlama ve Kapsülleme Arasındaki Fark
Soyutlama – Abstraction | Kapsülleme -Encapsulation |
Soyutlama, tasarım seviyesindeki sorunları çözer. | Kapsülleme, uygulama seviyesini çözer. |
Özet, en önemli bilgileri gösterirken istenmeyen ayrıntıları gizlemekle ilgilidir. | Kapsülleme, kodu ve verileri tek bir birime gizlemek anlamına gelir. |
Soyutlama, bilgi nesnesinin neleri içermesi gerektiğine odaklanmayı sağlar. | Kapsülleme, bir nesnenin güvenlik nedenlerinden ötürü nasıl bir şey yaptıklarına dair iç detayları veya mekaniği gizlemek anlamına gelir. |
Soyut sınıf ile Arayüz arasındaki fark
Abstract Class -Soyut Sınıf | Interface – Arayüz |
Soyut bir sınıf, soyut ve soyut olmayan yöntemlere sahip olabilir. | Arayüz sadece soyut yöntemlere sahip olabilir. |
Çoklu mirasları desteklemez. | Çoklu mirasları destekler. |
Arayüzün uygulanmasını sağlayabilir. | Soyut sınıfın uygulanmasını sağlayamaz. |
Soyut bir sınıf, korunmuş ve soyut kamu yöntemlerine sahip olabilir. | Bir arayüz sadece soyut soyut yöntemlere sahip olabilir. |
Soyut bir sınıf, herhangi bir erişim belirteci ile nihai, statik veya statik son değişkene sahip olabilir. | Arayüz sadece bir genel statik final değişkenine sahip olabilir. |
Soyutlamanın Avantajları
- Soyut bir sınıf kullanmanın temel faydası, birkaç ilgili sınıfı kardeş olarak gruplandırmanıza izin vermesidir.
- Soyutlama, yazılımın tasarım ve uygulama sürecinin karmaşıklığını azaltmaya yardımcı olur.
Soyut Methodlar ve Soyut Sınıflar ne zaman kullanılır?
- Soyut yöntemler çoğunlukla iki veya daha fazla alt sınıfın farklı uygulamalarla aynı şeyi farklı şekillerde gerçekleştirdiği beyan edilir.
- Soyut sınıflar, genel davranış türlerini ve nesne yönelimli programlama sınıfı hiyerarşisini tanımlamaya yardımcı olur. Aynı zamanda soyut sınıfın uygulama detaylarını sunmak için alt sınıfları tanımlar.
Özet:
- Soyutlama, yazılımınızdaki bir Nesne için önemli veri kümelerini seçme ve önemsiz olanları çıkarma işlemidir.
- Nesnenizi Abstraction kullanarak modelledikten sonra, aynı veri kümesi farklı uygulamalarda kullanılabilir.
- Java, soyutlama soyut sınıflar ve arayüzler kullanılarak gerçekleştirilir.
Add Comment