2009-05-05 16 views
10

Vedo che Spring ha un'annotazione @Required per contrassegnare le variabili membro in bean che devono essere impostate.Utilizzo consigliato di Spring's @Required annotation

Esiste una best practice per l'utilizzo di questo?

Per esempio, potrebbe essere meglio impostare questi valori nel costruttore e rendere esplicitamente richiesti questi parametri (specialmente se usati al di fuori di Spring)?

Grazie!

risposta

8

Pur non riferendosi al @Required annotazioni direttamente, Martin Fowler fornisce this advice ...

preferisce per impostare i valori degli oggetti nel costruttore piuttosto che in setter come sarà "vi darà una chiara dichiarazione di cosa significa creare un oggetto valido in un posto ovvio "mentre anche" consente di nascondere chiaramente tutti i campi che sono immutabili semplicemente non fornendo un setter ".

+3

Inoltre, l'impostazione/creazione di variabili istanziate nel costruttore consente di dichiararle come definitive. Una variabile finale, insieme a fornire un chiaro intento di utilizzo (come hai suggerito), è un passo verso il raggiungimento dell'immutabilità (vale la pena se il tuo oggetto ha bisogno di essere thread-safe). – CaptainHastings

Problemi correlati