设计模式一(单例模式)
前言:
设计模式博客园里好多大牛都有,本文主要是供自己以后翻看。里面引用了好多大牛的东西。
言归正传:
第一篇为单例模式:
单例模式:是为了保证一个类只有一个实例,并且提供一个全局的访问接口。
可以解决的问题:类外多线程访问资源互斥的问题。
实现方式和举例:
1、本类只有一个实例,不能被外部NEW 说明本类的构造函数不能是公有的。
2、需要一个静态变量来保存类的实例。
3、提供一个供外部访问的接口。
4、按照以上思路代码实现。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Single
{
/// <summary>
/// 单例模式
/// </summary>
class Singletion
{
//定义一个对象来保存单例模式
private static Singletion _Instance;
//用于枷锁
private static readonly object obj = new object();
//私有化构造函数 防止外部New
private Singletion()
{
}
//提供外部访问接口
public Singletion GetInstance()
{
//判断对象是否为空
if (_Instance==null)
{
//锁定,防止多线程同时访问本段代码,造成出现多个实例。
lock (obj)
{
//如果类的实例不存在则直接创造并其返回
if (_Instance==null)
{
_Instance = new Singletion();
}
}
}
return _Instance;
}
}
}
5、微软也实现了一个单例模式的类,思想都差不多,这里就不在赘述。
总结:本篇也是大部分看的别人的,但是看别人的永远是别人的,不是自己的,只有自己动手写了,才能转化为自己的东西,有些东西很简单,一看就懂,但是实际用的时候
又忘了,写不出来,我想可能就在于看懂了和真正动手写了,并且搞懂了的区别吧。
浙公网安备 33010602011771号