首页 > 代码库 > 个人理解的单例模式
个人理解的单例模式
下面是个人理解的单例模式:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication6 { public sealed class Singleton { static Singleton instance; /// <summary> /// 为了避免实例不唯一,构造方法私有化 /// </summary> private Singleton() { } public static Singleton Instance { get { return instance == null ? new Singleton() : instance; } } public void dd(){ Console.WriteLine("fdd"); Console.ReadLine(); } } }
主方法调用如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication6 { class Program { static void Main(string[] args) { Singleton.Instance.dd(); } } }
当然这有时候不能保证单例唯一,可以用lock方法来实现如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication6 { public sealed class Singleton { static Singleton instance; static readonly object padlock = new object(); public Singleton() { } public static Singleton Instance { get { if (instance == null) { lock (padlock) { if (instance == null) { instance=new Singleton() ; } } } return instance; } } public void dd() { Console.WriteLine("fdd"); Console.ReadLine(); } } }
欢迎交流
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。