Tergantung. Sebenarnya ada 2 jenis metode statis:
- Metode yang statis karena DAPAT
- Metode yang statis karena HARUS menjadi
Dalam basis kode ukuran kecil hingga sedang, Anda benar-benar dapat memperlakukan kedua metode tersebut secara bergantian.
Jika Anda memiliki metode yang termasuk dalam kategori pertama (can-be-static), dan Anda perlu mengubahnya untuk mengakses status kelas, relatif mudah untuk mencari tahu apakah mungkin mengubah metode statis menjadi metode instance.
Namun, dalam basis kode yang besar, banyaknya situs panggilan mungkin membuat penelusuran untuk melihat apakah mungkin untuk mengubah metode statis menjadi metode non-statis terlalu mahal. Banyak kali orang akan melihat jumlah panggilan, dan berkata "oke ... Lebih baik saya tidak mengubah metode ini, tetapi buat yang baru yang melakukan apa yang saya butuhkan".
Itu bisa mengakibatkan:
- Banyak duplikasi kode
- Ledakan jumlah argumen metode
Kedua hal itu buruk.
Jadi, saran saya adalah jika Anda memiliki basis kode lebih dari 200K LOC, saya hanya akan membuat metode statis jika metode tersebut harus menjadi metode statis.
Pemfaktoran ulang dari non-statis ke statis relatif mudah (cukup tambahkan kata kunci), jadi jika Anda ingin membuat can-be-static menjadi statis aktual nanti (saat Anda membutuhkan fungsionalitasnya di luar instance) maka Anda bisa. Namun, pemfaktoran ulang terbalik, mengubah can-be-static menjadi metode instance JAUH lebih mahal.
Dengan basis kode yang besar, lebih baik membuat kesalahan di sisi kemudahan ekstensi, daripada di sisi kemurnian idealogis.
Jadi, untuk proyek besar jangan membuat hal-hal statis kecuali Anda membutuhkannya. Untuk proyek kecil, lakukan saja apa yang paling Anda sukai.