เช่น.
boolean isCurrent = false;
คุณชื่ออะไรทะเยอทะยานและตั้งมัน?
เช่น.
boolean isCurrent = false;
คุณชื่ออะไรทะเยอทะยานและตั้งมัน?
คำตอบ:
สมมติว่าคุณมี
boolean active;
วิธีการเข้าถึงจะเป็น
public boolean isActive(){return this.active;}
public void setActive(boolean active){this.active = active;}
ดูสิ่งนี้ด้วย
hasCustomNameตอนนี้สิ่งที่ฉันควรตั้งชื่อให้มันของทะเยอทะยานและหมาวิธี? คือsetHasCustomName[setter]และhasCustomName[getter]ดีหรือไม่?
public boolean isCustomerName(){return this.customerName;} public void setCustomerName(boolean customerName){this.customerName= customerName;}
http://geosoft.no/development/javastyle.html#Specific
isคำนำหน้าควรใช้สำหรับตัวแปรและวิธีการบูลีน
isSet,isVisible,isFinished,isFound,isOpenนี่คือหลักการตั้งชื่อสำหรับเมธอดบูลีนและตัวแปรที่ใช้โดย Sun สำหรับแพ็กเกจแกน Java การใช้คำนำหน้า is แก้ไขปัญหาทั่วไปของการเลือกชื่อบูลีนที่ไม่ดีเช่นสถานะหรือแฟล็ก isStatus หรือ isFlag ไม่เหมาะและโปรแกรมเมอร์ถูกบังคับให้เลือกชื่อที่มีความหมายมากกว่า
เมธอด Setter สำหรับตัวแปรบูลีนต้องตั้งค่าคำนำหน้าเช่นเดียวกับใน:
void setFound(boolean isFound);มีสองทางเลือกในการเป็นคำนำหน้าซึ่งเหมาะกับบางสถานการณ์ สิ่งเหล่านี้มีความสามารถและควรนำหน้า:
boolean hasLicense(); boolean canEvaluate(); boolean shouldAbort = false;
hasDataตัวตั้งค่าจะเป็นอย่างไร แน่นอนที่สุดsetData(bool hasData)ฉันคิดว่าผิดอย่างมาก ...
has, can, shouldคำนำหน้าไม่ได้เป็นส่วนหนึ่งของข้อกำหนด ข้อมูลจำเพาะ JavaBeansอ้างอิง1.01ส่วน 8.3
boolean isIsCurrent(){...}อย่างอื่นกรอบที่ใช้ในการ deserialize getter not found for property isCurrentวัตถุบ่นกับ
สำหรับฟิลด์ที่มีชื่อการตั้งชื่อisCurrentgetter / setter ที่ถูกต้องคือsetCurrent()/ isCurrent()(อย่างน้อยนั่นคือสิ่งที่ Eclipse คิด) ซึ่งมีความสับสนสูงและสามารถสืบย้อนกลับไปที่ปัญหาหลัก:
ฟิลด์ของคุณไม่ควรถูกเรียกisCurrentตั้งแต่แรก Is is verb and verbs ไม่เหมาะสมในการแสดงสถานะของ Object ใช้คำคุณศัพท์แทนและทันใดนั้นชื่อ getter / setter ของคุณจะเหมาะสมกว่า:
private boolean current;
public boolean isCurrent(){
return current;
}
public void setCurrent(final boolean current){
this.current = current;
}
getคำนำหน้าเมื่อเรียกข้อมูลBooleanvs isสำหรับ aboolean
ฉันเชื่อว่ามันจะเป็น:
void setCurrent(boolean current)
boolean isCurrent()
อาจถึงเวลาที่จะเริ่มแก้ไขคำตอบนี้? ส่วนตัวผมจะลงคะแนนให้setActive()และunsetActive()(ทางเลือกที่สามารถsetUnActive(), notActive(),disable()ฯลฯ ขึ้นอยู่กับบริบท) ตั้งแต่ "setactive" หมายถึงการที่คุณเปิดใช้งานได้ตลอดเวลาที่คุณทำไม่ได้ มันเป็นชนิดของตัวนับที่ใช้งานง่ายที่จะพูดว่า "setActive" แต่จริงๆแล้วเอาสถานะที่ใช้งาน
ปัญหาอีกประการหนึ่งคือคุณไม่สามารถฟังเหตุการณ์ SetActive ในแบบ CQRS โดยเฉพาะคุณจะต้องฟัง 'setActiveEvent' และพิจารณาว่าผู้ฟังนั้นถูกตั้งค่าจริงหรือไม่ หรือแน่นอนกำหนดเหตุการณ์ที่จะโทรเมื่อโทรsetActive()แต่นั้นขัดกับหลักการแยกข้อกังวล
การอ่านที่ดีเกี่ยวกับเรื่องนี้คือบทความ FlagArgument โดย Martin Fowler: http://martinfowler.com/bliki/FlagArgument.html
อย่างไรก็ตามฉันมาจากพื้นหลังของ PHP และเห็นว่าแนวโน้มนี้ถูกนำมาใช้มากขึ้นเรื่อย ๆ ไม่แน่ใจว่าสิ่งนี้มีชีวิตอยู่กับการพัฒนา Java
private boolean current;
public void setCurrent(boolean current){
this.current=current;
}
public boolean hasCurrent(){
return this.current;
}
hasใช้สำหรับ BO หรือบริการดังกล่าวด้วยการประมวลผลบางอย่างในขณะที่สำหรับ POJO isมันเป็น และโปรดเพิ่มคำอธิบายบางอย่างเกี่ยวกับคำตอบของคุณ
Setter: public void setCurrent(boolean val)
Getter: public boolean getCurrent()
สำหรับบูลีนคุณสามารถใช้
public boolean isCurrent()
ในฐานะที่เป็นหมาเซทเทอร์
// setter
public void beCurrent(boolean X) {
this.isCurrent = X;
}
หรือ
// setter
public void makeCurrent(boolean X) {
this.isCurrent = X;
}
ฉันไม่แน่ใจว่าการตั้งชื่อเหล่านี้เหมาะสมกับเจ้าของภาษาอังกฤษหรือไม่