C# 类是否在prism中引用自身静态反模式

C# 类是否在prism中引用自身静态反模式,c#,design-patterns,prism,C#,Design Patterns,Prism,我有一个应用程序,我的设计方法如下: class Manager { public int State; static Manager _instance = null; public static Manager Instance { get { return _instance; } set { if (_instance == value) return

我有一个应用程序,我的设计方法如下:

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);
    }
}
Manager类已在引导程序中注册,如:

 protected override void ConfigureContainer()
 {
       base.ConfigureContainer();
       Container.RegisterType<Manager>(new ContainerControlledLifetimeManager());
 }
 protected override void InitializeModules()
 {
      Manager man= Container.Resolve<Manager>();
 }
protected override void ConfigureContainer()
{
base.ConfigureContainer();
RegisterType(新的ContainerControlledLifetimeManager());
}
受保护的覆盖无效初始化模块()
{
Manager man=Container.Resolve();
}

问题是我是否需要将我的manager对象在其字段中定义为静态,以便能够达到其状态?或者这是反模式的,或者对性能不好?

如果您只想拥有一个Manager类实例,最好使用方法在容器中注册它。这样,每当您的类被注入依赖代码时,它总是同一个类的实例。在这种情况下,类中不需要静态参数,稍后可以通过引入接口来减少代码的耦合。然后,客户端类将获得(比如)IModule参数,而不是具体的模块对象,并且容器将确保在应用程序的生命周期内,IModule实现对象始终是同一个实例。

您预期会有多个Manager实例吗?如果不是,则使用单例模式。请参阅以进行良好的讨论。