Java SE 8 đi kèm với một cơ chế mới cho những ngày, giới thiệu LocalDate, LocalTimevà LocalDateTimecác lớp học để biểu diễn khoảnh khắc của thời gian. Để thao tác khoảnh khắc như vậy, một tập hợp các phương pháp được đưa ra: LocalDate.plusDays(...), LocalDate.minusDays(...)và vân vân.
Tôi đã luôn nghĩ rằng thực tiễn tốt là đặt tên cho các phương thức sau khi các động từ mô tả mục đích của chúng, vì thực tế, các phương thức được thực thi, một cái gì đó sẽ thực hiện một hành động. Chỉ cần đề cập đến, nếu bạn xem xét các lớp học như StringBuilder, ví dụ, tên phương pháp là append, insert, delete...
Đây là lý do tại sao với tôi nó không phải âm thanh đặt tên một phương pháp plusDaysthay vì sumDays, minusDaysthay vì subtractDays. Chỉ là tôi thấy nó rất phiền phức? Bạn nghĩ sao?
Lý do duy nhất tôi có thể nghĩ đến là ngày tháng là những đối tượng bất biến, vì vậy bằng cách gọi plusDaysbạn không thêm ngày vào đối tượng ban đầu mà tạo ra một đối tượng mới với các thuộc tính mới, nhưng điều đó rất tinh tế.
sqrtchỉ là một từ mà các lập trình viên dự kiến sẽ nhận ra và biết. Nhân tiện, từ tiếng Anh là "căn bậc hai". Nhưng đặt tên mọi thứ theo những gì tự nhiên trong tiếng Anh là không tốt. Lấy từ "bất hợp pháp", ví dụ, một từ tiếng Anh hoàn toàn tốt. Tuy nhiên, nếu ai đó đặt tên cho phương pháp của họ, hãy nói rằng isIllicittôi nghĩ rằng tôi sẽ muốn xé nhãn cầu mỗi khi tôi nhìn vào phương thức này. Nó chỉ có vẻ khủng khiếp và phải có một cách tốt hơn để thể hiện ý tưởng.
sumNghe có vẻ sai trong bối cảnh này. Tôi thích .net AddDays.
Math.addExact(1, 2)bởi vì bạn nói "thêm 1 và 2". tomorrow.plusDays(2)bởi vì bạn nói "ngày mai cộng 2 ngày". Nếu addExactlà một thành viên của Integerbằng cách nào đó nó sẽ có được 1.plusExact(2).
plusDayssẽ trả lại một ngày mới x số ngày trong tương lai, trong khi addDaystôi có thể mong đợi sẽ làm thay đổi đối tượng ban đầu. Mặc dù đó chỉ là tôi, tôi không quen thuộc lắm với Java.
sqrtlấy căn bậc hai. Đặt tên cho phương thức nàytakeSqrtcó vẻ có ý nghĩa theo quy tắc của bạn, nhưng đặt tên cho phương thức này sẽ không làm cho phương thức dễ đọc hơn và cũng không làm cho nó rõ ràng hơn.