单例模式学习

单例模式学习笔记

特点:

       1、单例模式的类只有一个实例,并且对象只被创建一次

       2、实例在类中创建

       3、类中提供静态方法或者属性供外部调用类的实例

要点:

       1、单例类不能实现IConeable接口和序列化

       2、没有考虑到对象的销毁,在有垃圾回收的平台中可以不考虑

   3、使用过程中要考虑到多线程处理

 

使用代码示例:
public partial class userControl : UserControl
    {
        private userControl()
        {
            InitializeComponent();
        }

        private static userControl instrance;
        public static userControl Instrance
        {
            get
            {
                if (instrance == null)
                {
                    instrance = new userControl();
                }
                return instrance;
            }
        }
    }


使用过程中要考虑到多线程时候的使用;示例代码如下:
 class Singleton2
    {
        /// <summary>
        /// 私有构造函数
        /// </summary>
        private Singleton2() { }

        static object lockHelper = new object();

        /// <summary>
        /// 静态字段 属性
        /// </summary>
        private static Singleton2 instance;
        public static Singleton2 Instance
        {
            get
            {
                if (instance == null)
                {
                    lock(lockHelper)
                    {
                        if (instance == null)
                        {
                            instance = new Singleton2();
                        }
                    }
                }
                return instance;
            }
        }
    }

 

posted @ 2010-11-07 12:27  星空有我  阅读(305)  评论(0编辑  收藏  举报