Fonksiyon : Bir sınıf içindeki birbirine bağlı yada bağımsız yapılan işlem parçalarının birbirinden ayrılması olarak atfedilebilir.
Basit bir örnek ile anlatacak olursak ;
Sizin bir Email sınıfınız olsun ve bu sınıfın görevlerinden birisi email göndermek, diğeri ise inbox'ınıza gelen email'leri göstermek olsun.
Yukarıdaki görev ayrımı sınıfın bakış açısından basit bir mantıksal ayrım çünkü bu sınıf üzerindeki iki metodun görevleri yani fonksiyoneliteleri farklı.
Yani bu mantıksal ayrımı siz tek bir metod içindede yapabilirdiniz. Mesela;
Fakat bu örnek hem kodun okunabilirliğini hemde yazılım prensipleri için kötü bir kullanım olur.
Sınıf bazlı bakış açısından fonksiyonun içinden bakış açısına geçelim.
Mesela sendEmail(); metodumuz. BU metodumuzun görevi mail göndermek ama bu metod amiane tabirler "hayvan" gibi bir metod olur. Biz bu metodu, kendi içindeki fonksiyonelitesine göre fonksiyonlara parçalamalıyız.
Mesela;
Bu şekilde bir yaklaşım, sizin bu mail gönderimi işlemi yaparken, ne tür işlemler yaptığınızı ve oluşabilecek her hata için hangi noktada hata yaptığınızın tesğitinde ve kodun okunabilirliği/unit testlerinin yapılabilirliğinide artırmış olur.
Basit bir örnek ile anlatacak olursak ;
Sizin bir Email sınıfınız olsun ve bu sınıfın görevlerinden birisi email göndermek, diğeri ise inbox'ınıza gelen email'leri göstermek olsun.
Yukarıdaki görev ayrımı sınıfın bakış açısından basit bir mantıksal ayrım çünkü bu sınıf üzerindeki iki metodun görevleri yani fonksiyoneliteleri farklı.
Yani bu mantıksal ayrımı siz tek bir metod içindede yapabilirdiniz. Mesela;
Fakat bu örnek hem kodun okunabilirliğini hemde yazılım prensipleri için kötü bir kullanım olur.
Sınıf bazlı bakış açısından fonksiyonun içinden bakış açısına geçelim.
Mesela sendEmail(); metodumuz. BU metodumuzun görevi mail göndermek ama bu metod amiane tabirler "hayvan" gibi bir metod olur. Biz bu metodu, kendi içindeki fonksiyonelitesine göre fonksiyonlara parçalamalıyız.
Mesela;
Bu şekilde bir yaklaşım, sizin bu mail gönderimi işlemi yaparken, ne tür işlemler yaptığınızı ve oluşabilecek her hata için hangi noktada hata yaptığınızın tesğitinde ve kodun okunabilirliği/unit testlerinin yapılabilirliğinide artırmış olur.
Arkadaş daha başlangıçta OOP biraz ağır olur korkutma adamı :)