Burada biraz geç kalıyorum, ancak kesin bir tanım oluşturmaya çalışıyorum: statik işlevler, içeren sınıfın örnek özelliklerini / yöntemlerini referans göstermeyen veya gösteremeyen işlevlerdir.
Bazı dillerde, C # gibi, statik sınıflarda statik alanlar veya özellikler olabilir, bu yüzden durum için kullanılmadıklarını söylemek doğru değildir; statik bir fonksiyon statik (global) durumdan yararlanabilir.
Temel olarak, aşağı doğru kayıyor: statik işlevler, statik gibi, statik olmayan örneklere bağımlı olmadan her zaman kullanılabilir olmaları mantıklı olduğunda yararlıdır.
Yardımcı fonksiyonlar, matematik fonksiyonları gibi, açık bir örnek, ancak başkaları da var.
Yarattığınız sınıf verinin değişmez olmasını gerektiriyorsa, bir örneği alan ve örneğin değiştirilemediği (veya değiştirilmemesi) nedeniyle yeni bir örneği geçen statik işlevler oluşturmak mantıklı olabilir. Örneğin, dize sınıfları bir dize (veya 2 veya daha fazla) alan ve yeni bir dize geri ileten statik işlevlere sahip olabilir.
Başka bir neden, küresel bir durumu tutan bir sınıf veya bir tür veri olması olabilir. Statik özelliklerle veya statik sınıftaki alanlarla çalışan statik işlevler olabilir.