Documente Academic
Documente Profesional
Documente Cultură
1. Introducere
2. Analogie din realitate
3. Problema
4. Solouția
5. Aplicabilitate
6. Implementare
7. Exemplu
8. Avantaje și dezavantaje
9. Bibliografie
Intrdoducere
Aplicabilitate
• Metoda de creare verifică dacă instanța a fost deja creată și, în caz
contrar, o creează.
4. Se face constructorul clasei privat.
Exemplu
using System;
private PrinterSingleton() { }
class Program
{
static void Main(string[] args)
{
PrinterSingleton printer = PrinterSingleton.GetInstance();
using System;
using System.Threading;
private ThreadSafePrinterSingleton() { }
class Program
{
static void Main(string[] args)
{
ThreadSafePrinterSingleton printer =
ThreadSafePrinterSingleton.GetInstance();
thread1.Start();
thread2.Start();
thread1.Join();
thread2.Join();
}
}
Avantaje și dezavantaje
Avantaje:
• Poți fi sigur că o clasă are doar o singură instanță.
• Obții un punct global de acces la acea instanță.
• Obiectul singleton este inițializat doar atunci când este
solicitat pentru prima dată.
Dezavantaje:
• Încalcă Principiul Responsabilității Unice, rezolvând două
probleme simultan.
• Poate masca un design prost, de exemplu, când
componentele programului știu prea multe una despre
cealaltă.
• Necesită tratament special într-un mediu cu mai multe fire
de execuție pentru a evita crearea unui obiect singleton de
mai multe ori.
• Poate fi dificil să testezi unitar codul clientului Singleton
din cauza lipsei de posibilitate de a suprascrie metodele
statice în majoritatea limbajelor.
Bibiliografie
1. https://refactoring.guru/design-patterns/singleton
2. https://refactoring.guru/design-patterns/csharp