Propriétés d'initialisation profonde de Java Bean [fermé]
Question
Avez-vous la peine d’initialiser les valeurs de Java Bean? Dites par exemple:
([g | s] etters omis)
public class SomeClass {
private String foo;
private Date bar;
private Baz someObject;
}
(Oui, il s’agit d’un POJO utilisé comme un haricot plutôt que comme un haricot Java au sens le plus strict)
Dans le constructeur vide, initialisez-vous ces membres ou ne faites-vous rien? De même, Baz initialiserait-il ses membres également?
Ou laissez-vous les laisser comme nuls?
La solution
Cela dépend du cas d'utilisation.
Si j'utilise des propriétés en tant que dépendances de service, elles doivent être initialisées pour fonctionner correctement (au fait, Spring DI a un moyen pratique de le faire).
Si j'utilise bean dans le cadre d'un modèle de domaine, il est généralement illégal de posséder une propriété null. Il ne sera peut-être pas initialisé au démarrage, mais je m'embête à lancer IllegalStateException si un champ est vide pendant l'opération.
Autres conseils
Dans la mesure du possible, j'initialise les variables à la déclaration si elles doivent être initialisées. Ces instructions d’initialisation finissent en réalité par être appelées par le constructeur.
Je les laisse généralement comme nuls s'il n'y a pas de raison impérieuse de les initialiser.