Java

OOP Soyutlama Nedir?

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.

 

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.

 

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.

Yorum yap

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogcu bunu beğendi: