Sadece açık olmak gerekirse, genel bir şeyler yapmak ve bir soyutlamayı uygulamak tamamen iki farklı şeydir.
Örneğin, hafızayı kopyalayan bir işlevi düşünün.
İşlev, 4 baytın nasıl kopyalandığını gizleyen bir soyutlamadır.
int copy4Bytes (char * pSrc, char * pDest)
Bir genelleme bu işlevin herhangi bir sayıda baytı kopyalamasını sağlıyor olabilir.
int copyBytes (char * pSrc, char * pDest, int numBytesToCopy)
Soyutlama, yeniden kullanım için kendini ödünç verirken, genelleme, soyutlamayı sadece daha fazla durumda kullanışlı kılar.
Daha spesifik olarak sorunuzla ilgili olan Soyutlama, yalnızca kod yeniden kullanımı açısından yararlı değildir. Çoğu zaman doğru şekilde yapılırsa, kodunuzu daha okunaklı ve bakım yapılabilir hale getirir. Yukarıdaki örneği kullanarak, her seferinde bir dizini hareket ettiren bir dizi veriyi yineleyen bir dizi döngüsü yineleyerek copyBytes () veya a kodunu gözden geçiriyorsanız okunması ve anlaşılması daha kolay olan ne olabilir? Soyutlama, bence kodun çalışmasını kolaylaştıran bir tür kişisel dokümantasyon sağlayabilir.
Kendi genel kuralım olarak, bir kod parçasını tam olarak neyi planladığımı açıklayan iyi bir işlev adı bulabilirsem, tekrar kullanacağımı düşünüp kullanmamamdan bağımsız olarak bir işlev yazarım.