Part 10 Abstraction(Teori) Nedir?

Abstraction Nedir?

Abstraction, bir davranış ve mantıktır. Bir tesisatçının iş yaparken sadece ihtiyacı olan aletleri kullanması, diğer aletleri gözünün önünden kaldırması işini kolaylaştıracaktır. İngiliz anahtarı ve penseyle çalışırken diğer aletlerin elinin altında olması iş konsantrasyonunu olumsuz etkileyebilir. Aynı mantık yazılımcılar için de geçerlidir. İhtiyaç dışı member’ların arasından işe odaklanmak zor olabilir. Bu, yanlış metodun seçilmesine veya konuyla alakasız member’ların konsantrasyonu bozmasına yol açabilir. Gerekli olanları göster, gereksiz olanları gösterme. Abstraction, bir sınıfın member’larından ihtiyaç duyulanları gösterip, gereksiz olanları gizlemek demektir.

Abstraction Nasıl Uygulanır?

Abstraction’ın interface’ler veya abstract class’larla doğrudan bir ilgisi yoktur. Bir operasyon anında, kullanılacak sınıfın sadece o operasyona uygun member’larını gösterebilmek için (yani abstraction’ı uygulayabilmek için) ilgili member’ları temsil edebilecek bir referansa ihtiyacımız vardır. Bunu normal sınıflarla da gerçekleştirebilirsiniz; ancak, bu davranışı uygularken interface’ler veya abstract class’lar diğer yapılara göre daha elverişli olabilmektedir.

Abstraction’ın Ana Hedefi Nedir?

Abstraction, bir nesnenin yalnızca o anki duruma göre ilgili davranışlarını gösterir ve gereksiz ayrıntıları gizler. Amacı, geliştiriciden bir sınıfın gereksiz ayrıntılarını gizleyerek karmaşıklığın üstesinden gelmektir. Bir sınıftan üretilmiş bir instance’ı kullanırken, o instance’ın sadece ne yapabileceğini göstermek, ancak nasıl yapabileceği hakkında bilgi vermemektir. Ayrıca, yerine göre uygulama ayrıntılarını gizleyerek sadece ilgili davranışların erişilebilir olmasını sağlamaktır.

Abstraction’a Örnek Senaryolar

  1. Amazon Hesabı: Amazon hesabına giriş sürecinde kullanılacak bir nesneyi düşünün. Bu nesnenin sadece username ve password’ü alacak metoduna erişebilmemiz ve diğer konudan alakasız metodlarına erişemememiz bir abstraction davranışıdır.
  2. Araba: Bir araba, birçok parçadan bir araya gelerek işlevsellik gösterir. Ancak, şoför için araba sadece bir arabadır. Şoför açısından arabanın motorunda dönen tüm fiziksel kurallar soyutlanmıştır. Şoför arabanın nasıl çalıştığını bilmeyebilir, ancak çalıştığını bilir. İşte bu abstraction’dır.
  3. Prizler ve Fişler: Evlerimizde prizler ve o prizlere takılan fişler arasında bir abstraction durumu söz konusudur. Bir priz, kendisine takılan fiş üzerinden ilgili cihazlara elektrik gönderir. Priz, hangi cihaza bağlı olduğunu bilemez. Burada priz açısından elektrik göndereceği cihazın detayları fiş sayesinde soyutlanmıştır. Priz sadece kendisine takılan fişi bilir. Bu durum, aynı zamanda dependency inversion prensibini de akla getirebilir. Bu doğru olsa da aynı zamanda bir abstraction örneğidir.

Yorum Yap

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir