我需要存储一堆需要全局访问的变量,我想知道单例模式是否适用。从我看到的例子来看,单例模式只是一个不能被继承的静态类。但我见过的例子对于我的需求来说过于复杂。最简单的单例类是什么?我不能创建一个静态的密封类,其中包含一些变量吗?
通常是单例isn't静态类 - 单例会给你一个单例instance一个类的。
我不知道你见过什么例子,但通常单例模式在 C# 中可以非常简单:
public sealed class Singleton
{
private static readonly Singleton instance = new Singleton();
static Singleton() {} // Make sure it's truly lazy
private Singleton() {} // Prevent instantiation outside
public static Singleton Instance { get { return instance; } }
}
那并不难。
单例相对于静态成员的优点是类可以实现接口等。有时这很有用 - 但其他时候,静态成员确实也可以。此外,以后从单例转移到非单例通常会更容易,例如将单例作为“配置”对象传递给依赖项类,而不是那些进行直接静态调用的依赖项类。
就我个人而言,我会尽可能避免使用单例 - 除了其他任何事情之外,它们使测试变得更加困难。但它们偶尔还是有用的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)