Saya membuat metode validasi pribadi untuk validasi tertentu yang terjadi beberapa kali di kelas saya (saya tidak bisa menyimpan data yang divalidasi karena berbagai alasan). Sekarang, ReSharper menyarankan bahwa fungsi tersebut dapat dibuat statis. Saya sedikit enggan melakukannya karena masalah yang diketahui dengan metode statis. Ini akan menjadi metode statis pribadi . Pertanyaan saya adalah, dapatkah metode statis privat menyebabkan masalah kopling dan pengujian serupa seperti metode statis publik? Apakah ini praktik yang buruk? Saya kira tidak, tapi saya tidak yakin apakah ada jebakan di sini.
c#
static-methods
Tamás Szelei
sumber
sumber
Jawaban:
Saya akan berpikir: "Apakah saya perlu menguji ini?"
Jika metode Anda bersifat pribadi, artinya Anda tidak ingin menguji logika dalam metode itu sendiri, maka sejauh menyangkut testabilitas dan rawatan, kelas Anda adalah kotak hitam, bagaimanapun juga, cara kerja kelas Anda adalah bisnisnya. dan itu sendiri. Refactoring juga tidak akan terpengaruh, yang juga harus dipertimbangkan.
Jadi, menurut saya: Tidak, membuat metode "privat" "privat statis" tidak akan memiliki konsekuensi jangka panjang apa pun.
sumber
Metode statis pribadi adalah hal termudah yang mungkin, dari sudut pandang saya.
DataIn -> Metode -> DataOut
Tidak ada ketergantungan pada objek eksternal, tidak ada efek samping. Mengapa Anda menganggapnya buruk?
sumber
Menguji kelas yang menggunakan metode statis publik bisa sulit, karena itu (terutama) tidak mudah untuk mematikan / memalsukan / mengejek metode statis. Metode instance, di sisi lain, dapat dipermainkan dengan mudah, terutama jika virtual atau memenuhi antarmuka.
Namun, saya tidak dapat melihat alasan untuk tidak menggunakan metode statis pribadi. Memang, ada sedikit manfaat kinerja, karena Anda tidak perlu instance kelas untuk menempati memori.
Di sisi lain apa pun yang statis adalah sedikit bau kode. Apakah ini sebenarnya "kelas pembantu"? Mungkinkah metodenya bisa lebih berguna berada di salah satu kelas yang dilewati sebagai parameter? Jawaban atas pertanyaan-pertanyaan itu seringkali "baik-baik saja sebagai statis" tetapi perlu diingat.
sumber
static
kata kunci tampaknya tidak berdasar.