ฉันทำงานที่ไหนฉันเห็นชั้นเรียนจำนวนมากที่ทำสิ่งนี้:
public class ClassThatCallsItsOwnGettersAndSetters {
private String field;
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
public void methodWithLogic() {
setField("value");
//do stuff
String localField = getField();
//do stuff with "localField"
}
}
หากฉันเขียนสิ่งนี้ตั้งแต่เริ่มต้นฉันจะเขียนสิ่งmethodWithLogic()
นี้แทน:
public class ClassThatUsesItsOwnFields {
private String field;
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
public void methodWithLogic() {
field = "value";
//do stuff
//do stuff with "field"
}
}
ฉันรู้สึกว่าเมื่อชั้นเรียนเรียกคนที่เรียกว่า getters และ setters มันจะทำให้อ่านรหัสยากขึ้น สำหรับฉันแล้วมันแสดงให้เห็นว่าตรรกะที่ซับซ้อนเกิดขึ้นในวิธีการนั้นถึงแม้ว่าในกรณีของเรามันแทบจะไม่เคยเป็น เมื่อฉันทำการดีบักโค้ดที่ไม่คุ้นเคยใครจะพูดว่าข้อผิดพลาดนั้นไม่มีผลข้างเคียงในวิธีการนั้นบ้าง กล่าวอีกอย่างหนึ่งก็คือฉันใช้เวลาไปกับการเดินทางหลายครั้งเพื่อทำความเข้าใจกับรหัส
มีประโยชน์กับวิธีแรกหรือไม่? วิธีแรกดีกว่าจริงหรือ