我有一个名为SingletonController1的单例类。
这个SingletonController1实例化了许多其他的Singleton类。
SingletonController1{
Authenticator - Singleton;
DBAccessor - Singleton;
RiskAccessor - Singleton;
}
我的问题是,如果我将此设计重新设计为:
SingletonController2{
Authenticator -non-singleton;
DBAccessor -non-singleton;
RiskAccessor -non-singleton;
}
只要SingletonController2是唯一一个实例化那三个非Singleton类的类,它在功能上是否与以前的设计相同?
干杯
答案 0 :(得分:5)
功能性是相同的,但在第二种情况下灵活性要大得多,因为非单例类可以在应用程序/系统的其他地方重用。如果他们不需要单身,就不要让他们成为单身人士。
答案 1 :(得分:1)
是。这两个设计完成了同样的事情,条件是除了Singleton2之外没有其他类实例化Authenticator,DBAccessor和RiskAccessor。
答案 2 :(得分:1)
我认为你走在正确的轨道上,但要进一步推进。回到你的程序的根目录,你只需要一个单例。之后还有一个合乎逻辑的步骤。
答案 3 :(得分:0)
最近,我一直在做的是使用依赖注入框架来创建对象。他们可以做的是将一个类变成一个单例,其中包含一行代码,用于配置该类的创建方式。这样,如果您需要多个对象,只需删除该行并更改体系结构以便稍微调用它。我刚刚使用了一个与Unity 3D一起构建的框架,所以我不确定Unity 3D之外的框架是否支持这一点,但我对他们有很好的感觉。