Cycle de progression Faire (quelque chose qui marche) -> comprendre ce que l’on fait/comment cela marche -> pousser plus loin les notions
| public class Singleton { private static Singleton uniqueInstance; //autres variables private Singleton() { } public static Singleton GetInstance() { if (uniqueInstance == null) uniqueInstance = new Singleton(); return uniqueInstance; } //autres méthodes } |
| public class Singleton { private static readonly Singleton uniqueInstance = new Singleton(); //autres variables private Singleton() { } public static Singleton GetInstance() { return uniqueInstance; } //autres méthodes } |
| public class SousSingleton : Singleton { //autres variables private SousSingleton() : base() { } //autres méthodes } |
| public class Singleton { private static Singleton uniqueInstance = null; private static readonly object uniqueInstanceLocker = new object(); // constructeur Private private Singleton() { } // méthode permettant de récupérer l'uniqueinstance est static public static Singleton GetInstance() { lock (uniqueInstanceLocker) { if (uniqueInstance == null) uniqueInstance = new Singleton(); return uniqueInstance; } } } |
| class Program { static void Main(string[] args) { Singleton singleton = Singleton.GetInstance(); Singleton sousSingleton = SousSingleton.GetInstance(); } } |