İlk bakışta yazdığımız koda oldukça benzer yetenekler kazandırdıkları görünse de aralarındaki farkların üzerinde durarak hangi senaryolarda hangisine karar vermemiz gerektiğini iyice açığa çıkartacağız.
Öncelikle Soyutlama yani Abstraction ne demek bunu bir irdeleyelim.
C#’ta ki soyutlama; diğer Object Oriented dillerde olduğu gibi iç detayları gizleyerek sadece işlevleri göstermeye denir.
Senaryo:
Çarpışan arabamızdaki soyutlamaya bakalım. Siz arabayı kullanırken direksiyonu gitmek istediğiniz yöne çeviriyor, gaz pedalına basarak ilerliyorsunuz.
Gaz pedalına bastığınızdaki motorda oluşan tetiklenmeleri, direksiyonu çevirdiğinizde lastiklerin dönmesini sağlayan mekanizmayı hiç düşünmeden yalnızca iki pedal ve bir direksiyon ile aslında arka planında onlarca aksiyondan oluşan bir işlevi gerçekleştirmiş oluyorsunuz.
Input → Gaz/fren pedalları, direksiyon
Output → Arabanın gitmesi