C# 设计模式-单件(Singleton)
2017-12-26 18:47
513 查看
一个类仅有一个实例,并提供访问实例的全局访问点
单件类:
调用:
结果:
参考资料:《设计模式-可复用面对对象软件的基础》
单件类:
using System; namespace Singleton { /// <summary> /// 单件 /// </summary> class SingletonClass { private static SingletonClass instance; //私有构造函数 private SingletonClass() { } //获取唯一实例(延迟初始化,但是多线程可能获取多个实例,不能确保线程安全) public static SingletonClass Instance() { if (instance == null) { instance = new SingletonClass(); } return instance; } } /// <summary> /// 线程安全单件 /// </summary> class ThreadSafeSingletonClass { private static ThreadSafeSingletonClass instance = new ThreadSafeSingletonClass(); //私有构造函数 private ThreadSafeSingletonClass() { } //获取唯一实例(线程安全,但是不能延迟初始化) public static ThreadSafeSingletonClass Instance() { return instance; } } }
调用:
using System; namespace Singleton { class Program { static void Main(string[] args) { SingletonClass singleton1 = SingletonClass.Instance(); SingletonClass singleton2 = SingletonClass.Instance(); //判断两个对象实例是否相等 if (singleton1 == singleton2) { Console.WriteLine("singleton1等于singleton2"); } ThreadSafeSingletonClass threadSafeSingleton1 = ThreadSafeSingletonClass.Instance(); ThreadSafeSingletonClass threadSafeSingleton2 = ThreadSafeSingletonClass.Instance(); //判断两个对象实例是否相等 if (threadSafeSingleton1 == threadSafeSingleton2) { Console.WriteLine("threadSafeSingleton1等于threadSafeSingleton2"); } Console.Read(); } } }
结果:
参考资料:《设计模式-可复用面对对象软件的基础》
相关文章推荐
- C#设计模式系列:单件模式(Singleton)
- C#面向对象设计模式学习笔记(1) - Singleton 单件模式(创建型模式)
- C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式) 笔记
- [导入]C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式).zip(9.57 MB)
- [整理]C#面向对象设计模式纵横谈(2):Singleton单件(创建型模式)
- 一起谈.NET技术,C#面向对象设计模式纵横谈:Singleton 单件
- C#中不需要用锁的线程安全的Singleton设计模式开发者在线 Builder.com.cn 更新时间:2008-07-19作者: 来源:
- 设计模式--创建型-SINGLETON(单件)
- 设计模式笔记--创建型模式之五--单件 Singleton
- PHP设计模式之单件(Singleton)
- 设计模式学习笔记:Singleton(单件模式)
- 设计模式之单例模式 (Design patterns of the The singleton pattern)c#
- 【初学设计模式】Singleton (单件)
- C#设计模式——单例模式(Singleton)
- C#设计模式——单件模式(Singleton Pattern)
- 设计模式学习笔记(二)——Singleton单件模式
- 设计模式之——单件模式(Singleton)
- C#设计模式:单件(例)模式 -- 类也玩计划生育
- [用设计模式锻炼C#系列]之Singleton、Bridge
- 设计模式单件(Singleton)---对象创建型模式