Sıfırdan başlayalım. Her şeyden önce, soyutlama gerçekten nedir?
Sorun / Güdü
Programladığınızda, genellikle çok ayrıntılı sorunları çözmeniz gerekir.
Soyutlamanın temel sebebi, kendinizi programınızın tüm sorunu tek bir birim olarak ele aldığı bir durumda, dikkat ve anlayış gerektiren birçok küçük farklı özelliğe sahip olabileceğiniz zamandır. Buradaki sorun, insanların bu kadar büyük miktarda veriyi aynı anda işlemesinin zor olmasıdır.
Çözüm: Soyutlama
Eğer mümkün olabilmesi için de fikrinizi gerçekleştirmek için gereken sadece anlamaya , ayıklamak ayrıntılı çözümleri içine basitleştirilmiş soyutlamalar .
Örneğin, SQL'in nesnelere soyutlandığı ORM'ye (Nesne-İlişkisel Eşleme) bakalım.
Bir veritabanına soyutlama olmadan yeni bir öğe eklemek için, bir programcı SQL bilmek zorundadır. Dolayısıyla, yeni bir öğe eklemek için bir programcının tabloya yeni bir öğe eklemek için SQL sözdizimini hatırlaması gerekir:
INSERT INTO Items (field1, field2) VALUES (value1, value2)
Ancak soyutlamalarla, programcının sadece ne yapmak istediğinin fikrinin farkında olması gerekir . Nesneye yönelik bir soyutlama şöyle görünebilir:
Item item = new Item(value1, value2)
Hatta biraz daha ileri gidebilir ve SQL'in kendisinin basit bir bildirim dili öğrenmenin fiyatı için tamamen parmaklarınızın ucunda olan tonlarca karmaşık veri depolama yapısı ve algoritması için büyük bir soyutlama olduğunu düşünebilirsiniz.
Soyutlamanın Karşısı
Şimdi soyutlamanın sadece eldeki özlü kavramı bilmeyi yeterli kılmakla ilgili olduğunu belirlediğimiz şeye dayanarak, soyutlamanın tam tersinin aslında kullanımın veya anlayışın bir tür uzmanlık bilgisine sahip olduğu ezoterik olduğunu kolayca belirleyebiliriz . öznenin özellikleri.