单例模式

单例模式:系统中一个类有且只有一个实例,而且该实例可供访问。

三个要点:1、某个类只能有一个实例;2、它必须自行创建这个实例;3、他必须向整个系统提供这个实例。

对应三点的具体实现:1、单例模式的类只提供私有的构造函数;2、类定义中含有一个该类的静态私有对象;3、该类提供了一个静态的共有的函数用于创建或获取它本身的的私有静态对象

        private ClassInfo()   //私有的构造函数 (如果不定义为私有,则整个系统都可以反复的new出一个新实例)
        {
            InitializeComponent();
            this.dgvClassList.AutoGenerateColumns = false;
            LoadClassInfo();
        }

        static ClassInfo claInfo = null;   //静态的私有对象  (定义一个为本身的私有静态对象)
        public static ClassInfo Getsington()    //可获取创建或获取本身私有对象的静态方法  (定义一个静态方法以供外部访问,并且方法内判断,保证只有一个实例)
        {
            if(claInfo==null || claInfo.IsDisposed==true)  //(如对象为空,或者被释放,则new出一个新的实例)
            {
                claInfo = new ClassInfo();
            }
            return claInfo;  //(否则返回原先的实例)
        }

 

posted on 2015-01-26 23:39  ianism  阅读(102)  评论(0编辑  收藏  举报

导航