c# - 双例模式实现

标签 c# .net design-patterns

我正在利用 the Doubleton Design Pattern on Code Project 中的 Doubleton 模式在我自己的代码中。我认为它使事情变得容易得多,因为 Singleton 只提供一个实例,但我用这种模式得到了两个。我想知道让它实现一个接口(interface)是否有意义,以便我可以将它注入(inject)我的领域层。

最佳答案

尽管这样的设计很有用和聪明,但这是不可能的。您不能在接口(interface)中定义静态成员。

public interface IDoubleton
{
    static IDoubleton Instance { get; } // Can't be done
}

@Pierreten,如果你使用实例方法,想象一下:

IDoubleton firstInstance;
// Construct firstInstance,
// do some stuff...

// Now comes trouble.
IDoubleton secondInstance = firstInstance.Instance; // what does it mean?
IDoubleton anotherInstance = secondInstance.Instance.Instance.Instance; // what now?

编辑:正如@Roger Pate 正确指出的那样,我的第二个答案应该合并到这个答案中。因为他已经做了,所以我删除了另一个。

关于c# - 双例模式实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3026282/

相关文章:

c# - 来自 Web 表单的 Web-API 调用 - AJax。不存在 'Access-Control-Allow-Origin' header

design-patterns - 这是对复合模式的有效解释吗?

c# - 用鼠标画矩形

c# - 在处置类实例时,我是否需要显式处置其所有 IDisposable 成员?

C# WPF Web 浏览器控件 : How to use JavaScript

.net - 这种 .Net 模式有什么好处

c# - 使用部分类是一种好的做法/设计吗?

design-patterns - 更改 haxe 对象的 "this"范围。可能的?

c# - 如何提交表单然后在完成时调用 jquery 函数而不重定向 MVC/C#/Jquery

c# - 无法解析程序集或 Windows 元数据文件 "Mono.Android.dll"