Java SE 8 มาพร้อมกับกลไกใหม่สำหรับวันที่แนะนำLocalDate, LocalTimeและLocalDateTimeชั้นเรียนเพื่อเป็นตัวแทนของจังหวะเวลา เพื่อจัดการกับจังหวะดังกล่าวเป็นชุดของวิธีการที่จะได้รับ: LocalDate.plusDays(...), LocalDate.minusDays(...)และอื่น ๆ
ฉันคิดเสมอว่าวิธีปฏิบัติที่ดีคือการตั้งชื่อวิธีการหลังจากคำกริยาอธิบายถึงจุดประสงค์ของพวกเขาเช่นเดียวกับวิธีการที่เป็นจริงการดำเนินการที่จะดำเนินการสิ่งที่จะดำเนินการ เพียงแค่พูดถึงถ้าคุณพิจารณาการเรียนเหมือนStringBuilderเช่นชื่อวิธีการมีappend, insert, delete...
นี่คือเหตุผลที่ฉันก็ไม่ได้เสียงที่เหมาะสมในการตั้งชื่อวิธีการplusDaysแทนsumDays, แทนminusDays subtractDaysฉันแค่พบว่ามันน่ารำคาญมาก? คุณคิดอย่างไร?
เหตุผลเดียวที่ฉันนึกได้ก็คือวันที่นั้นเป็นวัตถุที่ไม่เปลี่ยนรูปดังนั้นโดยการโทรplusDaysคุณไม่ได้เพิ่มวันในวัตถุดั้งเดิม แต่สร้างวันใหม่ด้วยคุณสมบัติใหม่ แต่นั่นช่างลึกซึ้งมาก
sqrtเป็นเพียงคำที่โปรแกรมเมอร์คาดว่าจะรับรู้และรู้ คำภาษาอังกฤษคือ "สแควร์รูท" โดยวิธี แต่การตั้งชื่อสิ่งต่าง ๆ ตามสิ่งที่เป็นธรรมชาติในภาษาอังกฤษนั้นไม่ดี ใช้คำว่า "ผิดกฎหมาย" ตัวอย่างเช่นคำภาษาอังกฤษที่ดีอย่างสมบูรณ์แบบ อย่างไรก็ตามถ้ามีคนตั้งชื่อวิธีการของพวกเขาบอกว่าisIllicitฉันคิดว่าฉันต้องการที่จะฉีกดวงตาของฉันทุกครั้งที่ฉันดูวิธีการโทรนี้ มันดูน่ากลัวและต้องมีวิธีที่ดีกว่าในการแสดงความคิดเห็น
sumฟังดูผิดในบริบทนี้ AddDaysฉันชอบของสุทธิ
Math.addExact(1, 2)เพราะคุณพูดว่า "เพิ่ม 1 และ 2" tomorrow.plusDays(2)เพราะคุณพูดว่า "พรุ่งนี้บวก 2 วัน" หากaddExactเป็นสมาชิกของอย่างใดก็จะได้รับInteger 1.plusExact(2)
plusDaysจะได้วันที่ใหม่จำนวน x วันในอนาคตในขณะที่addDaysฉันอาจคาดว่าจะกลายพันธุ์วัตถุต้นฉบับ นั่นเป็นเพียงฉัน แต่ฉันไม่ใช่ทุกคนที่คุ้นเคยกับ Java
sqrtซึ่งใช้รากที่สอง การตั้งชื่อวิธีนี้takeSqrtอาจดูสมเหตุสมผลตามกฎของคุณ แต่การตั้งชื่อวิธีนี้จะไม่ทำให้วิธีการอ่านง่ายขึ้นและไม่ทำให้ชัดเจนขึ้น