天天看点

设计模式--单例模式,与生活结合

     一、我的理解 

       单例模式,其目的是让某个类只有一个实例,并且方便于外界访问,从而实现方便的对实例个数的限制

       很明显,采用单例模式有如下作用:

       1、方便对不能并发的资源统一管理

       2、节省内存开销,避免每一次处理都新建对象

       3、能方便共享,让所有对象访问

    二、应用

       生活中有哪些可以使用单例模式:

       1、皇帝,在朝廷上仅一个皇帝,在古代皇帝处理事务并不能并发执行,如果每个臣子都新建一个皇帝去向皇上提问,那估计皇上会彻底崩溃,每个人跟皇帝沟通前,先要看皇帝是否没与人沟通,所以,用单例模式确保了仅一位皇帝,而大家可以共享访问皇帝来得到皇帝的状态

       2、网站记录访问人数,大家都对同一个对象进行访问,获取人数以及增加访问次数,在使用最小内存开销的同时又能确保让所有对象访问

       3、printer spoolter,一台计算机可以用多个打印机,但只能够有一个printer spoolter,避免两个打印作业同时输出到打印机中

       4、网络会议,会议室只能有一个,得到会议室地址后,才能够加入会议中来,确保大家访问的是同一个会议

       三、代码

using System;
using System.Collections.Generic;
using System.Text;

namespace ModeDemo.Singleton
{
    /// <summary>
    /// 单件模式
    /// </summary>
    public class Singleton
    {
        private static Singleton instance;

        protected Singleton()
        { }

        public static Singleton Instance()
        {
            if (instance == null)
            {
                instance = new Singleton();
            }

            return instance;
        }
    }
}      
///1、单件模式的使用
            Singleton.Singleton s1 = Singleton.Singleton.Instance();
            Singleton.Singleton s2 = Singleton.Singleton.Instance();

            if (s1 == s2)
            {
                Console.WriteLine("这两个对象是同一下对象");
            }

            Console.Read();      

继续阅读