2013-04-09 33 views

Trả lời

3

Bạn có hoạt động trên List như một phần giao diện công khai của mình không? Trong trường hợp đó, đánh dấu tất cả các phương thức đó là deprecated. Nếu không, bạn sẽ ổn thôi.

2

Bạn chỉ cần thêm thông báo phản đối vào tuyên bố về bất kỳ điều gì bạn đang phản đối. Nó đóng vai trò như một lời cảnh báo rằng mọi người nên tránh việc triển khai sử dụng lớp không được chấp nhận, chẳng hạn như trong List<DeprecatedClass>.

0

Chỉ cần đánh dấu như:

@Deprecated 
List<deprecatedClass> listOfDeperecatedClass 

nên không sao đâu.

4

Không, bạn không cần. Thêm chú thích @Deprecated đến DeprecatedClass sẽ tạo cảnh báo mỗi khi được sử dụng.


gì bạn nên làm phương pháp tuy nhiên, được đánh dấu trong lớp khác mà phải mất lớp NỮA của bạn như là một cuộc tranh cãi hoặc trả lại nó, như bị phản đối là tốt. Điều đó xảy ra đối với bất kỳ mã truy cập nào khác có thể có các phiên bản của trường không được chấp nhận của bạn — các trường công khai, hằng số, v.v. Tất nhiên, bạn không thể sử dụng những trường hợp không được dùng nữa, vì vậy cảnh báo vẫn được đưa ra, nhưng trong chú thích và nhận xét không dùng chính xác, bạn nên cung cấp giải thích và trỏ đến giải pháp thay thế, thông tin có giá trị mà bạn cần để cung cấp.

Chữ ký phương thức giống như một hợp đồng và do đó là chữ ký lớp. Bạn đang nói với các lập trình viên khác những gì họ có thể gọi và cách họ có thể gọi cho họ. Bạn đang nói cho họ biết những trường nào có thể truy cập được. Các lập trình viên khác dựa vào mã của họ. Nếu bạn thực sự cần phải phá vỡ hợp đồng đó, trước tiên bạn cần cung cấp thay thế cho hợp đồng đó (một phương pháp mới có cùng chức năng), và nói với họ và cho họ thời gian để chuyển sang hợp đồng mới đó (không dùng các phương thức và lớp cũ) .

Tất nhiên, ở trên giả định rằng bạn đang mã hóa cho đối tượng. Nếu bạn là người duy nhất sử dụng mã của mình và bạn chỉ muốn không dùng nữa để dọn sạch mã của mình mà không phá vỡ bản dựng, chỉ cần từ chối lớp, sửa các cảnh báo và xóa nó.

Các vấn đề liên quan