Comment utiliser la méthode Facade.Instance sans construction d'objet?
-
13-09-2019 - |
Question
Je ne viens de terminer une unité sur les modèles de logiciels et je suis maintenant essaie de comprendre le cadre PureMVC. Une chose a obtenu mon perplexe cependant quelque chose qui est simple aux gourous ici.
Je tente de créer une instance de la classe de façade singleton. Dans le constructeur, l'état des commentaires:
Cette mise en œuvre de IFacade est un Singleton, alors vous ne devriez pas appeler le constructeur directement, mais au lieu d'appeler la méthode statique Singleton usine Facade.Instance
Comment pouvez-vous appeler la méthode d'instance lorsque l'objet de façade n'a pas encore été créé?
La méthode Facade.Instance ressemble à ceci:
public static IFacade Instance
{
get
{
if (m_instance == null)
{
lock (m_staticSyncRoot)
{
if (m_instance == null) m_instance = new Facade();
}
}
return m_instance;
}
}
La solution
Vous accédez à une propriété statique. Les propriétés statiques font partie de la définition de la classe, et non pas des instances de classe. Pour accéder à un membre statique (propriété, champ, méthode), utilisez simplement le nom de la classe membre de points:
var myFacade = SomeClass.Instance;