Bonjour,
j'aurais une question toute naïve et sans prétention : je ne suis ni expert java, ni expert c#, mais, étant tombé sur deux bouts de codes définissant le pattern singleton sur wikipedia, l'un en java, l'autre en c#, j'ai été surpris de voir leur forte similitude, surtout comparé aux autres exemples dans d'autres langages, qui eux étaient bien différents (c++, python, vb.net ...):
singleton java:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public class Singleton { private static Singleton INSTANCE = null; /** * La présence d'un constructeur privé supprime * le constructeur public par défaut. */ private Singleton() {} /** * Le mot-clé synchronized sur la méthode de création * empêche toute instanciation multiple même par * différents threads. * Retourne l'instance du singleton. */ public synchronized static Singleton getInstance() { if (INSTANCE == null) INSTANCE = new Singleton(); return INSTANCE; } }
singleton c#:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public class Singleton { private static Singleton _instance; private Singleton() { } public Singleton getInstance() { lock (this) { if (_instance== null) _instance= new Singleton(); return _instance; } } }
Pour les autres langages, le lien:
http://fr.wikipedia.org/wiki/Singlet...de_conception)
Ma question : quelles sont les différences fondamentales entre java et c# ?
Merci.