Commençons cette aventure des Design Patterns avec l’un des patterns les plus connus : le Singleton.
Où comment ne renvoyer qu’une seule instance d’une classe, quelque soit le nombre d’appels;
Autrement dit : comment pouvoir limiter le nombre de new à un seul ?.
Dans notre jeu, nous souhaitons mettre en place une classe qui gère des variables globales, accessibles dans tout notre jeu :
- la partie en cours
- le joueur / la joueuse
- …
Il ne faut qu’une seule instance de cette classe, qui va être appelée : GameMotor.
internal sealed class GameMotor
{
private Game currentGame;
private static readonly GameMotor _instance = new GameMotor();
private GameMotor() { }
public static GameMotor Instance => _instance;
public Game StartNewGame()
{
this.currentGame = new Game();
return this.currentGame;
}
}
// Singleton
GameMotor motor = GameMotor.Instance;
motor.StartNewGame();
Yes, ça attire ta curiosité ?