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

来源:互联网 发布:佳能 35 1.4 知乎 编辑:程序博客网 时间:2024/05/24 06:33

     一、我的理解 

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

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


       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();