Saya mengirimkan aplikasi yang saya tulis ke beberapa arsitek lain untuk tinjauan kode. Salah satu dari mereka segera membalas saya dan berkata "Jangan gunakan" statis ". Anda tidak dapat menulis tes otomatis dengan kelas dan metode statis." Statis "harus dihindari."
Saya memeriksa dan sepenuhnya 1/4 kelas saya ditandai "statis". Saya menggunakan statis ketika saya tidak akan membuat turunan kelas karena kelas tersebut adalah kelas global tunggal yang digunakan di seluruh kode.
Dia kemudian menyebutkan sesuatu yang melibatkan teknik mengejek, IOC / DI yang tidak dapat digunakan dengan kode statis. Dia mengatakan sangat disayangkan ketika perpustakaan pihak ke-3 bersifat statis karena tidak dapat diuji.
Apakah arsitek lain ini benar?
pembaruan: berikut adalah contohnya:
APIManager - kelas ini menyimpan kamus API pihak ke-3 yang saya panggil bersamaan dengan waktu yang diizinkan berikutnya. Ini memberlakukan batas penggunaan API yang dimiliki banyak pihak ke-3 dalam persyaratan layanan mereka. Saya menggunakannya di mana saja saya memanggil layanan pihak ke-3 dengan menelepon Thread.Sleep (APIManager.GetWait ("ProviderXYZ")); sebelum melakukan panggilan. Semua yang ada di sini aman untuk thread dan berfungsi baik dengan TPL di C #.
static
baik-baik saja;static
ladang perlu diperlakukan dengan sangat hati