2009-05-05 36 views
10

Tôi thấy rằng Spring có chú thích @Required để đánh dấu các biến thành viên trong các hạt phải được đặt.Khuyến nghị sử dụng chú thích @Required của Spring

Có cách nào tốt nhất để sử dụng tính năng này không?

Ví dụ, có thể tốt hơn là đặt các giá trị này trong hàm tạo và thực hiện các tham số này một cách rõ ràng (đặc biệt khi được sử dụng ngoài Spring)?

Cảm ơn!

Trả lời

8

Mặc dù không đề cập đến @Required chú thích trực tiếp, Martin Fowler cung cấp this advice ...

Ông thích để thiết lập giá trị đối tượng trong các nhà xây dựng chứ không phải là trong setters vì nó sẽ "cung cấp cho bạn một tuyên bố rõ ràng ý nghĩa của việc tạo đối tượng hợp lệ ở một vị trí rõ ràng là "trong khi đó" cho phép bạn ẩn rõ ràng bất kỳ trường nào không thay đổi bằng cách đơn giản là không cung cấp setter ".

+3

Hơn nữa, việc đặt/khởi tạo các biến trong hàm tạo cho phép bạn khai báo chúng là cuối cùng. Một biến cuối cùng, cùng với việc cung cấp mục đích rõ ràng về cách sử dụng (như bạn đã đề xuất), là một bước hướng tới việc đạt được tính bất biến (đáng giá nếu đối tượng của bạn cần phải an toàn chỉ). – CaptainHastings

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