单例模式

单例模式是一种创建型设计模式,它确保类只有一个实例,并提供一个全局访问点来访问该实例。这在需要全局访问点来控制类的唯一实例时非常有用。以下是一个简单的示例代码来说明单例模式的实现:

复制代码
public class Singleton
{
    private static Singleton instance;

    // 私有构造函数,防止外部实例化对象
    private Singleton() { }

    // 获取单例对象的静态方法
    public static Singleton GetInstance()
    {
        // 使用延迟初始化确保只在需要时才创建实例
        if (instance == null)
        {
            instance = new Singleton();
        }
        return instance;
    }

    public void SomeMethod()
    {
        Console.WriteLine("Executing some method in Singleton");
    }
}

class Program
{
    static void Main()
    {
        // 获取单例实例
        Singleton singleton1 = Singleton.GetInstance();
        Singleton singleton2 = Singleton.GetInstance();

        // 验证单例实例
        if (singleton1 == singleton2)
        {
            Console.WriteLine("singleton1 and singleton2 are the same instance");
        }

        // 调用单例实例的方法
        singleton1.SomeMethod();
    }
}
复制代码

在上面的代码中,Singleton 类具有一个私有静态字段 instance,并且构造函数被定义为私有,这样就不能在类外部直接实例化对象。通过静态方法 GetInstance() 来获取单例对象,确保只有一个实例被创建。在 Main 方法中,我们获取了单例实例 singleton1 和 singleton2,并验证它们是同一个实例。最后,我们调用了单例实例的 SomeMethod() 方法。

单例模式确保了在程序中的任何地方使用相同的实例,避免了资源重复消耗,同时提供了一个全局访问点来管理类的唯一实例。

posted @   电器小君子  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示