博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单件模式 Singleton---Design Pattern 5
阅读量:4603 次
发布时间:2019-06-09

本文共 1328 字,大约阅读时间需要 4 分钟。

单件模式 Singleton

单件模式:确保一个类只有一个实例,并提供一个全局访问点

//包含单件实例的类Singleton    public class Singleton    {        //声明用于存储单件实例的变量instance        private static Singleton instance;        //定义用于标识同步线程的对象locker        private static Object locker = new Object();        //私有的构造函数Singleton        private Singleton() { }        //公共访问的返回单件实例的函数GetInstance        public static Singleton GetInstance()        {            //第一重“锁”只为了提高些性能            if (instance == null)            {                //线程锁定块                lock (locker)                {                    //第二重“锁”防止多线程多次new实例                    if (instance == null)                    {                        //new唯一实例                        instance = new Singleton();                    }                }            }            //返回单件实例            return instance;        }    }    //程序调用入口(Main方法)    class Program    {        static void Main(string[] args)        {            Singleton s1 = Singleton.GetInstance();            Singleton s2 = Singleton.GetInstance();            if (s1 == s2)   //True            {                Console.WriteLine("Objects are the same instance!");            }            Console.ReadKey();        }    }

当我们的系统中某个对象只需要一个实例的情况,例如:操作系统中只能有一个任务管理器,操作文件时,同一时间内只允许一个实例对其操作等时可以用此模式。

转载于:https://www.cnblogs.com/wangweiabcd/p/3900659.html

你可能感兴趣的文章
restcontroller和controller区别
查看>>
2016012003+陈琦+散列函数的应用及其安全性
查看>>
Android 状态栏通知Notification、NotificationManager详解
查看>>
Sublime Text 3中使用正则表达式删除空行
查看>>
UIApplicationDelegate协议
查看>>
再谈iOS 7的手势滑动返回功能
查看>>
Jmeter测试dubbo接口填坑
查看>>
python小练——找出指定目录下小于指定字节的文件,输出到文本文件
查看>>
渐渐磨砺--16年11月封闭总结
查看>>
[zz]GDB调试精粹及使用实例
查看>>
数据库的创建和删除
查看>>
最简单的三层实例【插入据
查看>>
设计模式学习笔记——Prototype原型模式
查看>>
pom.xml里有红叉报错的解决办法
查看>>
Perl last和next的用法区别
查看>>
Selenium 管理 Cookies
查看>>
exceptionfunction[LeetCode]Permutations
查看>>
Linux(2)_常用命令2
查看>>
自定义分页
查看>>
[转]DELPHI——调试(1)
查看>>