Misalnya.
boolean isCurrent = false;
Apa nama pembuat dan penyetelnya?
Misalnya.
boolean isCurrent = false;
Apa nama pembuat dan penyetelnya?
Jawaban:
Misalkan Anda punya
boolean active;
Metode pengakses akan menjadi
public boolean isActive(){return this.active;}
public void setActive(boolean active){this.active = active;}
Lihat juga
hasCustomName
, Sekarang apa yang harus saya beri nama untuk metode pengambil dan penyetelnya ? Apakah setHasCustomName[setter]
dan hasCustomName[getter]
bagus?
public boolean isCustomerName(){return this.customerName;} public void setCustomerName(boolean customerName){this.customerName= customerName;}
http://geosoft.no/development/javastyle.html#Specific
is
awalan harus digunakan untuk variabel dan metode boolean.
isSet
,isVisible
,isFinished
,isFound
,isOpen
Ini adalah konvensi penamaan untuk metode boolean dan variabel yang digunakan oleh Sun untuk paket inti Java. Menggunakan awalan adalah memecahkan masalah umum memilih nama boolean yang buruk seperti status atau bendera. isStatus atau isFlag tidak cocok, dan programmer dipaksa untuk memilih nama yang lebih bermakna.
Metode setter untuk variabel boolean harus telah menetapkan awalan seperti pada:
void setFound(boolean isFound);
Ada beberapa alternatif untuk awalan is yang lebih cocok dalam beberapa situasi. Ini memiliki awalan, dapat dan harus:
boolean hasLicense(); boolean canEvaluate(); boolean shouldAbort = false;
hasData
, akan seperti apa penyetel itu? Pastinya, setData(bool hasData)
kelihatannya sangat salah bagi saya ...
has
, can
, should
prefiks bukan bagian dari spesifikasi. Referensi JavaBeans Spesifikasi 1.01 bagian 8.3.
boolean isIsCurrent(){...}
sebaliknya kerangka yang digunakan untuk deserialize objek, mengeluh dengan getter not found for property isCurrent
.
Untuk bidang bernama isCurrent
, penamaan pengambil / penyetel yang benar adalah setCurrent()
/ isCurrent()
(setidaknya itulah yang dipikirkan Eclipse), yang sangat membingungkan dan dapat ditelusuri kembali ke masalah utama:
Bidang Anda seharusnya tidak dipanggil isCurrent
sejak awal. Is adalah kata kerja dan kata kerja tidak pantas untuk merepresentasikan keadaan Object. Gunakan kata sifat sebagai gantinya, dan tiba-tiba nama pengambil / penyetel Anda akan lebih masuk akal:
private boolean current;
public boolean isCurrent(){
return current;
}
public void setCurrent(final boolean current){
this.current = current;
}
get
awalan saat mengambil Boolean
vs is
untuk aboolean
Saya percaya itu akan:
void setCurrent(boolean current)
boolean isCurrent()
Mungkin sekarang saatnya untuk mulai merevisi jawaban ini? Secara pribadi saya akan memilih setActive()
dan unsetActive()
(alternatif bisa setUnActive()
, notActive()
, disable()
, dll tergantung pada konteks) karena "setActive" berarti Anda mengaktifkannya setiap saat, yang tidak Anda lakukan. Ini semacam kontra intuitif untuk mengatakan "setActive" tetapi sebenarnya menghapus status aktif.
Masalah lain adalah, Anda tidak dapat mendengarkan secara khusus acara SetActive dengan cara CQRS, Anda perlu mendengarkan 'setActiveEvent' dan menentukan di dalam apakah pendengar benar-benar diaktifkan atau tidak. Atau tentu saja menentukan acara mana yang harus dihubungi saat menelepon setActive()
tetapi itu kemudian bertentangan dengan prinsip Pemisahan Kekhawatiran.
Bacaan yang bagus tentang ini adalah artikel FlagArgument oleh Martin Fowler: http://martinfowler.com/bliki/FlagArgument.html
Namun, saya berasal dari latar belakang PHP dan melihat tren ini semakin banyak diadopsi. Tidak yakin berapa banyak ini hidup dengan pengembangan Java.
private boolean current;
public void setCurrent(boolean current){
this.current=current;
}
public boolean hasCurrent(){
return this.current;
}
has
digunakan untuk BO atau layanan semacam itu dengan beberapa pemrosesan sementara untuk POJO itu is
. dan tolong tambahkan deskripsi tentang jawaban Anda.
Setter: public void setCurrent(boolean val)
Getter: public boolean getCurrent()
Untuk boolean Anda juga bisa menggunakan
public boolean isCurrent()
Sebagai setter, bagaimana dengan:
// setter
public void beCurrent(boolean X) {
this.isCurrent = X;
}
atau
// setter
public void makeCurrent(boolean X) {
this.isCurrent = X;
}
Saya tidak yakin apakah penamaan ini masuk akal bagi penutur asli bahasa Inggris.