Nó không nhanh hơn. Dường như được dựa trên giả định rằng một phương pháp có thể được gạch chân nhưng một nhà xây dựng không thể. Thật không may đó là vô nghĩa, do đó, toàn bộ điểm của nó đi ra ngoài cửa sổ.
Thậm chí nếu điều này nhanh hơn, nó gần như chắc chắn sẽ là một ý tưởng tồi. Mã không được tối ưu hóa với chi phí dễ đọc, ngoại trừ trong trường hợp cực đoan mà mỗi chu kỳ CPU cuối cùng là rất quan trọng và trong trường hợp đó, bạn không thể sử dụng Java.
Thực tế, điều này còn tồi tệ hơn việc khó đọc hơn. Việc tái cấu trúc tiếp theo chắc chắn sẽ là cho phương thức khởi tạo Test
để gọi phương thức init()
, để nó không phải luôn luôn được thực hiện thủ công (và làm theo cách thủ công là một nỗi đau và một nguồn lỗi tiềm tàng nếu nó bị lãng quên); và thực hành xấu nếu một hàm tạo gọi một phương thức có thể bị ghi đè, bởi vì một lớp con có thể vô tình thay đổi những gì xảy ra tại thời điểm xây dựng khi hàm tạo siêu lớp được gọi (xem this question để biết thêm chi tiết). Khi điều này xảy ra, một lớp con của Test
trong cùng một gói sẽ có thể ghi đè phương thức init()
và sau đó khi lớp con gọi super()
, hoặc ngầm hoặc rõ ràng, hàm tạo của lớp cha sẽ kết thúc gọi ghi đèinit()
. (Vấn đề cụ thể này có thể bị loại bỏ bằng cách tuyên bố init()
là private
.)
Đừng làm điều đó.
Nguồn
2015-01-06 16:14:19
Hãy hỏi tác giả. –
Không có gì tối ưu hóa bất cứ điều gì trong mã của bạn .. – Maroun
Làm thế nào mà nghĩa vụ phải làm việc? – Natix