单身人士包裹的单身人士或非单身人士

时间:2009-11-12 21:49:04

标签: java singleton

我有一个名为SingletonController1的单例类。

这个SingletonController1实例化了许多其他的Singleton类。

SingletonController1{
Authenticator - Singleton;
DBAccessor - Singleton;
RiskAccessor - Singleton;
}

我的问题是,如果我将此设计重新设计为:

   SingletonController2{
    Authenticator -non-singleton;
    DBAccessor -non-singleton;
    RiskAccessor -non-singleton;
    }

只要SingletonController2是唯一一个实例化那三个非Singleton类的类,它在功能上是否与以前的设计相同?

干杯

4 个答案:

答案 0 :(得分:5)

功能性是相同的,但在第二种情况下灵活性要大得多,因为非单例类可以在应用程序/系统的其他地方重用。如果他们不需要单身,就不要让他们成为单身人士。

答案 1 :(得分:1)

是。这两个设计完成了同样的事情,条件是除了Singleton2之外没有其他类实例化Authenticator,DBAccessor和RiskAccessor。

答案 2 :(得分:1)

我认为你走在正确的轨道上,但要进一步推进。回到你的程序的根目录,你只需要一个单例。之后还有一个合乎逻辑的步骤。

答案 3 :(得分:0)

最近,我一直在做的是使用依赖注入框架来创建对象。他们可以做的是将一个类变成一个单例,其中包含一行代码,用于配置该类的创建方式。这样,如果您需要多个对象,只需删除该行并更改体系结构以便稍微调用它。我刚刚使用了一个与Unity 3D一起构建的框架,所以我不确定Unity 3D之外的框架是否支持这一点,但我对他们有很好的感觉。