Độ trễ / Độ trễ? Tôi gọi cho BS về điều đó. Cần có chính xác không chi phí từ thực tế này. ( Chỉnh sửa: Trên thực tế, các ý kiến đã chỉ ra rằng điều này có thể ức chế tối ưu hóa được thực hiện bởi HotSpot VM. Tôi không biết đủ về việc triển khai VM để xác nhận hoặc từ chối điều này. Tôi đã dựa vào nhận xét của mình về C ++ thực hiện các chức năng ảo.)
Có một số mã trên đầu. Bạn phải tạo tất cả các hàm tạo từ lớp cơ sở mà bạn muốn, chuyển tiếp các tham số của chúng.
Tôi cũng không thấy nó là một mô hình chống đối. Tuy nhiên, tôi thấy đó là một cơ hội bị bỏ lỡ. Thay vì tạo một lớp xuất phát từ lớp cơ sở chỉ vì mục đích đổi tên, bạn thay vào đó tạo một lớp có chứa bộ sưu tập và cung cấp giao diện được cải tiến theo từng trường hợp cụ thể? Bộ nhớ cache widget của bạn có thực sự cung cấp giao diện đầy đủ của bản đồ không? Hoặc thay vào đó nên cung cấp một giao diện chuyên dụng?
Hơn nữa, trong trường hợp các bộ sưu tập, mẫu đơn giản là không hoạt động cùng với quy tắc chung là sử dụng giao diện, không phải triển khai - nghĩa là, trong mã bộ sưu tập đơn giản, bạn sẽ tạo một HashMap<String, Widget>
, sau đó gán nó cho một biến loại Map<String, Widget>
. Bạn WidgetCache
không thể mở rộng Map<String, Widget>
, vì đó là một giao diện. Nó không thể là một giao diện mở rộng giao diện cơ sở, bởi vì HashMap<String, Widget>
không thực hiện giao diện đó và cũng không có bất kỳ bộ sưu tập tiêu chuẩn nào khác. Và trong khi bạn có thể biến nó thành một lớp mở rộng HashMap<String, Widget>
, thì bạn phải khai báo các biến là WidgetCache
hoặc Map<String, Widget>
, đầu tiên bạn mất tính linh hoạt để thay thế một bộ sưu tập khác (có thể là một bộ sưu tập tải lười biếng của ORM), trong khi loại thứ hai đánh bại điểm có lớp học
Một số trong những điểm đối ứng này cũng áp dụng cho lớp chuyên ngành đề xuất của tôi.
Đây là tất cả các điểm để xem xét. Nó có thể hoặc không thể là lựa chọn đúng đắn. Trong cả hai trường hợp, các đối số được cung cấp của đồng nghiệp của bạn không hợp lệ. Nếu anh ta nghĩ rằng đó là một mô hình chống, anh ta nên đặt tên cho nó.