我在很多地方使用单例模式,有时构造函数什么都不做,有时候它会初始化.我想知道是否有办法设置一个抽象类来最小化我的代码重复,即我不需要public static readonly Singleton _Instance = new Singleton();在每个单独的类中,只需要一个基类.我理解接口不是一种选择.
我尝试过使用以下内容(取自此处);
public abstract class Singleton<T> where T : new()
{
static Singleton()
{
}
private static readonly T _Instance = new T();
public static T Instance
{
get { return _Instance; }
}
}
Run Code Online (Sandbox Code Playgroud)
这个问题是我不能覆盖我需要初始化的情况的构造函数.我正在努力做甚么可能吗?或者我应该继续做我正在做的事情,而不是担心基础单身人士课程?
我想知道是否有办法设置一个抽象类来最小化我的代码重复
不,没有.一旦你有了一个抽象类,你就有了一个可以多次实例化的类.我已经看到不同的人试图做这样的事情,但最终的结果要么不是单身,要么比做你已经做的更复杂.
我正在努力做甚么可能吗?或者我应该继续做我正在做的事情,而不是担心基础单身人士课程?
你不应该尝试创建一个基础单例类 - 但如果我是你,我会尝试首先停止使用这么多的单例.单例模式很容易被过度使用,这无异于反模式.看看你是否可以重构依赖注入,使用恰好只创建每个类的一个实例的配置,但这是配置问题而不是类本身强制执行.
除了其他任何事情,涉及单身人士的单元测试往往是一种痛苦,仅仅因为它是需要在测试之间进行清理的全局状态等.
| 归档时间: |
|
| 查看次数: |
252 次 |
| 最近记录: |