เช่น.
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
วัตถุบ่นกับ
สำหรับฟิลด์ที่มีชื่อการตั้งชื่อisCurrent
getter / 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
คำนำหน้าเมื่อเรียกข้อมูลBoolean
vs 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;
}
ฉันไม่แน่ใจว่าการตั้งชื่อเหล่านี้เหมาะสมกับเจ้าของภาษาอังกฤษหรือไม่