设计模式一(单例模式)

前言:

设计模式博客园里好多大牛都有,本文主要是供自己以后翻看。里面引用了好多大牛的东西。

言归正传:

第一篇为单例模式:

单例模式:是为了保证一个类只有一个实例,并且提供一个全局的访问接口。

可以解决的问题:类外多线程访问资源互斥的问题。

实现方式和举例:

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、微软也实现了一个单例模式的类,思想都差不多,这里就不在赘述。

总结:本篇也是大部分看的别人的,但是看别人的永远是别人的,不是自己的,只有自己动手写了,才能转化为自己的东西,有些东西很简单,一看就懂,但是实际用的时候

又忘了,写不出来,我想可能就在于看懂了和真正动手写了,并且搞懂了的区别吧。

posted @ 2015-12-04 11:24  dghwey  阅读(130)  评论(0编辑  收藏  举报