Saya suka menggunakan tanda tanya di akhir nama metode / fungsi dalam bahasa lain. Java tidak mengizinkan saya melakukan ini. Sebagai solusinya, bagaimana lagi saya bisa memberi nama metode pengembalian boolean di Java? Menggunakan is
, has
, should
, can
di depan sebuah suara metode apa-apa untuk beberapa kasus. Apakah ada cara yang lebih baik untuk menyebutkan metode seperti itu?
Misalnya, createFreshSnapshot?
java
methods
naming-conventions
letronje
sumber
sumber
?
dalam nama metode?p
di akhir nama metodeJawaban:
Ketentuannya adalah mengajukan pertanyaan atas nama.
Berikut beberapa contoh yang dapat ditemukan di JDK:
Dengan begitu, nama-nama itu dibaca seolah-olah ada tanda tanya di akhir.
Dan, kemudian,
true
berarti ya, danfalse
berarti tidak.Atau, Anda bisa membacanya seperti pernyataan:
Catatan:
Terkadang Anda mungkin ingin memberi nama metode seperti
createFreshSnapshot?
. Tanpa tanda tanya, namanya menyiratkan bahwa metode tersebut harus membuat snapshot, daripada memeriksa untuk melihat apakah diperlukan.Dalam hal ini Anda harus memikirkan kembali apa yang sebenarnya Anda tanyakan. Sesuatu seperti
isSnapshotExpired
adalah nama yang jauh lebih baik, dan menyampaikan apa yang akan diberitahukan oleh metode saat dipanggil. Mengikuti pola seperti ini juga dapat membantu fungsi Anda lebih murni dan tanpa efek samping.Jika Anda melakukan pencarian Google untuk
isEmpty()
di API Java, Anda mendapatkan banyak hasil.sumber
isSnapshotExpired
atau sesuatu seperti itu. (berdasarkan kriteria Anda)shouldHeartbeat()
metode.isEmpty()
danhasChildren()
merupakan pertanyaan , dan bukan pernyataan ? Ini sebenarnya terbaca sedikit lebih baik dalam bahasa Inggris jika Anda menganggap nama-nama itu sebagai pernyataan atau predikat.Jika Anda ingin kelas Anda kompatibel dengan spesifikasi Java Beans , sehingga alat yang memanfaatkan refleksi (misalnya JavaBuilders , JGoodies Binding ) dapat mengenali getter boolean, baik yang digunakan
getXXXX()
atauisXXXX()
sebagai nama metode. Dari spesifikasi Kacang Jawa:sumber
public boolean is<PropertyName>();
Ini terlihat seperti generik.Saya ingin memposting tautan ini karena dapat membantu lebih jauh untuk peeps yang memeriksa jawaban ini dan mencari konvensi gaya java lainnya
Panduan Gaya Pemrograman Java
Item "2.13 adalah awalan yang harus digunakan untuk variabel dan metode boolean." secara khusus relevan dan menyarankan awalan is .
Panduan gaya selanjutnya menyarankan:
Jika Anda mengikuti Panduan, saya yakin metode yang sesuai akan dinamai:
sumber
Untuk metode yang mungkin gagal, yaitu Anda menentukan boolean sebagai tipe kembalian, saya akan menggunakan awalan
try
:Untuk semua kasus lain gunakan awalan seperti
is..
has..
was..
can..
allows..
..sumber
Standar yang digunakan adalah 'is' atau 'has' sebagai awalan. Misalnya
isValid
,hasChildren
.sumber
is
adalah salah satu yang saya temui lebih dari yang lain. Apapun yang masuk akal dalam situasi saat ini adalah pilihan terbaik.sumber
Saya ingin menunjukkan pandangan berbeda tentang konvensi penamaan umum ini , misalnya:
lihat java.util.Set :
boolean add(E e)
dimana alasannya adalah:
lakukan beberapa proses kemudian laporkan apakah berhasil atau tidak .
Meskipun
return
memangboolean
nama metode harus menunjukkan pemrosesan ke selesai, bukan jenis hasil (boolean untuk contoh ini).createFreshSnapshot
Contoh Anda bagi saya lebih terkait dengan sudut pandang ini karena tampaknya berarti ini: buat snapshot baru lalu laporkan apakah operasi pembuatan berhasil. Mempertimbangkan alasan ini, nama tersebutcreateFreshSnapshot
tampaknya yang terbaik untuk situasi Anda.sumber