J'ai une question par rapport à quelle est la bonne pratique et quelle est la mauvaise pratique et pourquoi ?
Supposons que je veuille réaliser une "bibliothèque" de fonctions (pour l'exemple on dira les fonctions addition et soustraction d'entiers).
Première solution :
Je réalise une classe qui contient mes deux fonctions déclarées en static :
Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public class MathUtils { public static int add(int a, int b) { return a+b; } public static int sub(int a, int b) { return a-b; } }
Deuxième solution :
Je réalise un singleton pour qui contient mes deux fonctions :
Code JAVA : 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 public class MathUtils { private MathUtils() {} private static MathUtils INSTANCE = new MathUtils(); public static MathUtils getInstance() { return INSTANCE; } public int add(int a, int b) { return a+b; } public int sub(int a, int b) { return a-b; } }
Mon avis : J'ai l'impression que c'est deux implémentation sont équivalentes (à part peut-être en terme de performance et de compilation). Je trouve donc juste l'utilisation d'un singleton plus "lourd" (=plus de code pour résultat équivalent). J'utiliserais donc plutôt la première solution.
Mais je me pose quand même ces questions :
- Y a-t-il une différence de performance entre ces deux solutions ?
- ]Quelle est la bonne pratique (=la solution la plus "java") ?
- Pourquoi l'autre n'est pas une bonne pratique ? Dans quels cas alors l'utiliser ?
- Dans la première solution, faut-il déclarer la class comme static et/ou abstract ? et pourquoi ?
- Est-ce que j'ai tout faux est la bonne solution est aucune de celles proposées ?
Partager