Thông qua API Java, bạn thấy nhiều lần xảy ra xung đột việc đặt tên và thực hành gây nhầm lẫn cho tôi.Quy ước Java về dữ liệu có thể truy cập. (Public accessors & Getters/Naming)
Ví dụ:
Lớp String có một biến tư nhân (Integer) bằng tên của count
mà theo dõi kích thước của chuỗi, tuy nhiên điều này sẽ được trả về bởi một getter bởi tên của length()
.
Nếu bạn di chuyển sang bất kỳ loại mảng nào, thay vì có phương thức getter cho chiều dài, chúng chỉ truyền biến thông qua bộ truy cập công khai và có thể lấy thông qua arrayInstance.length
.
Di chuyển trở lại lớp Chuỗi chúng tôi có phương thức String#getBytes()
là phương thức getter, tương tự như getter length()
, tuy nhiên thực hiện một chút logic để nhận và trả về giá trị.
Đối với tôi, cá nhân, tạo ra một getter với tiền tố của get
dường như không cần thiết, ví dụ như tôi chứ không phải gõ GamePacket#data()
so GamePacket#getData()
tuy nhiên tôi có cảm giác như có thể có một ý nghĩa sâu xa đằng sau đặt tên này thay vì chỉ mâu thuẫn.
Ngoài ra, tại sao không Array[]
sử dụng bộ nạp cho length
?
Có ai đủ tử tế để làm sáng tỏ điều này cho tôi không?
Một mảng sẽ không được kích thước lại. 'Length' là' final' và vô hại.' – ChiefTwoPencils
@ChiefTwoPencils - Rất đáng lưu ý, bỏ qua điều đó, +1. – Hobbyist