Ho un'applicazione e il mio approccio al design è il seguente:
class Manager
{
public int State;
static Manager _instance = null;
public static Manager Instance
{
get { return _instance; }
set
{
if (_instance == value)
return;
_instance = value;
}
}
public Manager()
{
State = 0;
Instance=this;
}
}
class Module1
{
public void GetState()
{
Console.WriteLine(Manager.Instance.State);
}
}
class Module2
{
public void GetState()
{
Console.WriteLine(Manager.Instance.State);
}
}
class Module3
{
public void GetState()
{
Console.WriteLine(Manager.Instance.State);
}
}
Classe Manager già registrata in Bootstrapper come:
protected override void ConfigureContainer()
{
base.ConfigureContainer();
Container.RegisterType<Manager>(new ContainerControlledLifetimeManager());
}
protected override void InitializeModules()
{
Manager man= Container.Resolve<Manager>();
}
Domanda è ho bisogno di definire il mio oggetto gestore come statico nel suo campo per essere in grado di raggiungere il suo stato? O questo è anti-pattern o cattivo per le prestazioni?