Singleton(单例)模式

定义:

Singleton模式主要作用是保证在应用程序中,一个类只有一个实例存在。

原理:

将目标类的构造函数私有化,因此只能被类本身创建。

下面是Singleton模式的原型:

namespace UI
{
    public class Singleton
    {
        private Singleton() { }
  
        private static Singleton instance = null;
  
        public static Singleton GetInstance() 
        {
            if (instance == null)
                instance = new Singleton();
  
            return instance;
        }
    }
}

下面来验证这样写是否真的起作用了,我们添加一个Info属性:

namespace UI
{
    public class Singleton
    {
        private Singleton() { }
  
        private static Singleton instance = null;
  
        public string Info { get; set; }
  
        public static Singleton GetInstance(string info) 
        {
            if (instance == null)
                instance = new Singleton { Info = info };
  
            return instance;
        }
    }
}

这样,如果成功的话,Info属性只能被赋值一次,下面是测试入口代码:

using System;
  
namespace UI
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Singleton myS1 = Singleton.GetInstance("Success once");
            Singleton myS2 = Singleton.GetInstance("Success twice");
  
            Console.Title = "Singleton test";
            Console.WriteLine(myS1.Info);
            Console.WriteLine(myS2.Info);
  
            Console.ReadLine();
        }
    }
}

如果成功的话,两次都会输出“Success once”,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值