Bonjour,
ne développant pas en java/objet depuis longtemps j'ai une question existentielle sur la création d'une classe métier, avec ou non l'initialisation de ses attributs.
Je m'explique : imaginons une class ayant 3 atttributs de type String, un attribut de type List<String>, un d'un type "personnalisé" (d'une autre classe) et un de type int.
En gros ceci :
Imaginons 2 constructeurs différents :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class My_New_Class { private int id; private String myString1; private String myString2; private String myString3; private List<String> myList1; private MyObject myObject1; }
Quand faut il initialiser directement les attributs dans leur déclaration ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public class My_New_Class { ... public My_New_Class(String myString1, String myString2){ this.myString1 = myString1; this.myString2 = myString2; } public My_New_Class(String myString1, String myString2, String myString3){ this.myString1 = myString1; this.myString2 = myString2; this.myString3 = myString3; } }
Je pars du principe (enfin ma logique) qu'il faut initialiser les objets "complexes" si il ne le sont pas dans les constructeurs.
Ici :
Et j'aurais tendance à initialiser aussi les types "primitifs" qui ne sont pas commun à tous les constructeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 private List<String> myList1 = null; private MyObject myObject1 = null;
Ici, j'aurais fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private int id = -1; ... private String myString3 = null;
Donc en gros, cela donnerait ceci au final :
Selon vous, est ce bon ? ou généralement on évite de le faire dans la déclaration, et on initialise tout dans chaque constructeur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public class My_New_Class { private int id = -1; private String myString1; private String myString2; private String myString3 = null; private List<String> myList1 = null; private MyObject myObject1 = null; public My_New_Class(String myString1, String myString2){ this.myString1 = myString1; this.myString2 = myString2; } public My_New_Class(String myString1, String myString2, String myString3){ this.myString1 = myString1; this.myString2 = myString2; this.myString3 = myString3; } }
Par avance merci.
Partager