2009-05-05 51 views
10

我看到Spring有一個@Required註解,用於在bean中標記必須設置的成員變量。Spring's @Required註釋的推薦用法

是否有使用此最佳做法?例如,在構造函數中設置這些值並明確需要這些參數(尤其是在Spring外部使用時)可能會更好嗎?

謝謝!

回答

8

雖然沒有直接提及@Required註釋,Martin Fowler的提供this advice ...

他喜歡設定在構造函數,而不是制定者對象的值,因爲它會「給你一個明確的說法意思是在一個明顯的地方創建一個有效的對象「,而它也」「允許你通過簡單地不提供設置器來清楚地隱藏任何不可改變的字段。

+3

此外,在構造函數中設置/實例化變量允許您將它們聲明爲final。最終的變量,以及明確的使用意圖(如您所建議的),是實現不變性的一個步驟(如果您的對象需要線程安全,則是值得的)。 – CaptainHastings 2011-07-20 21:01:56