2009-05-05 16 views
10

Veo que Spring tiene una anotación @Required para marcar las variables miembro en los beans que se deben establecer.Uso recomendado de Spring @ @Required Anotación

¿Existe una mejor práctica para usar esto?

Por ejemplo, ¿podría ser mejor establecer estos valores en el constructor y hacer estos parámetros explícitamente necesarios (especialmente cuando se usan fuera de Spring)?

Gracias!

Respuesta

8

Si bien no se refiere a la anotación @Required directamente, Martin Fowler ofrece this advice ...

Se prefiere establecer valores de los objetos en el constructor y no en los emisores, ya que se "darle una declaración clara de lo que significa crear un objeto válido en un lugar obvio "mientras que también" le permite ocultar claramente cualquier campo que sea inmutable simplemente no proporcionando un setter ".

+3

Además, establecer/instanciar variables en el constructor le permite declararlas como definitivas. Una variable final, junto con una clara intención de uso (como sugirió), es un paso hacia el logro de la inmutabilidad (que vale la pena si su objeto necesita ser seguro para subprocesos). – CaptainHastings

Cuestiones relacionadas