Sto lavorando su un piccolo progetto e ho deciso di passare da DI a modello singolo. Anche se conosco 2 modi per fare singleton.
Il primo è dove ogni classe non modello è un singleton. Questo significa:
UserController
DatabaseHelper
ConfigurationModule
FriendComponent
Sono tutti singleton, tuttavia:
User
UserFriendship
DatabaseConnection
DatabaseConfig
Non sono da quando sono tutti modelli.
Tuttavia, il secondo modo che conosco è:
Ho una classe singleton principale (userò il programma di classe come esempio). La classe ha un aspetto simile a:
class Program
{
private static Program _instance;
private readonly DatabaseHelper _databaseHelper;
public Program()
{
_databaseHelper = new DatabaseHelper();
}
public static Program GetInstance()
{
if (_instance == null)
{
_instance = new Program();
}
return _instance;
}
}
So che questo è principalmente soggettivo, ma mi stavo chiedendo quale di questi 2 (o se entrambi) non sia il migliore da usare.