[设计模式]单例模式
Posted sjkzy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[设计模式]单例模式相关的知识,希望对你有一定的参考价值。
引言
做为已经开发9年多的我,最近感觉有点迷茫,技术更新太快,有点跟不上这么快的节奏,在开始工作时,一直也听领导说23种设计模式,当时也看了视频,看完也没有太大的收获,在工作中有的时候也是为了把设计模式强加到代码中,最近在看设计模式时,确实有了更深刻的理解。在此我还是建议热爱编程的同行,“如果连自己喜欢的工作,都做不好,那么活着就太空虚了,男人么就应该对自己恨一点。如果你现在没有得到你想要的生活,只能说明你对自己还不够狠”。言归正传,说说今天的单例模式。
单例模式定义
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
单例模式类图
(类图来自:http://www.cnblogs.com/zhili/p/SingletonPatterm.html,这里借用一下)
/// <summary>
/// 饿汉式
/// </summary>
public sealed class Singleton
{
/// <summary>
/// 私有构造函数
/// </summary>
private Singleton()
{
}
private static readonly Singleton _Instance = new Singleton();//定义私有的静态变量
public static Singleton Instance
{
get
{
return _Instance;
}
}
}
/// <summary>
/// 懒汉式
/// </summary>
public sealed class Singleton
{
/// <summary>
/// 私有构造函数
/// </summary>
private Singleton()
{
}
private static Singleton _instance = null;
private static readonly object obj= new object();
public static Singleton GetInstance
{
get
{
if(_instance==null)
{
lock(obj)
{
if(_instance==null)
{
_instance = new Singleton();
}
}
}
return _instance;
}
}
}
优点:
以上是关于[设计模式]单例模式的主要内容,如果未能解决你的问题,请参考以下文章