美文网首页
单例模式(Singleton Pattern)

单例模式(Singleton Pattern)

作者: 十柒年 | 来源:发表于2018-08-07 17:21 被阅读14次

    1.单例模式(Singleton Pattern)

    意图:一个类仅有一个实例,并提供一个访问他的全局访问点。那么哪里会用到单例模式呢?比如任务管理器,回收站,打印机,只能打开一个窗口,在比如,英雄联盟里的人物等等。
    单例模式特点:该类不能被外界任意实例化,该类向外界提供一个可获得该类的实例的方法,该类只能被实例化一次。接下来看个例子

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Singleton
    {
        class Moto
        {
            static Moto m = null;
            private Moto()
            {
                //
            }
            public static Moto GetInstance()
            {
                if (m == null)
                {
                   m= new Moto();
                }
                return m;
            }
            public void Run()
            {
                Console.WriteLine("笃笃笃........Moto");
            }
        }
    }
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Singleton
    {
        class Program
        {
            static void Main(string[] args)
            {
                Moto m = Moto.GetInstance();
                m.Run();
                Moto m1 = Moto.GetInstance();
                m1.Run();
    
            }
        }
    }
    

    在这个实例中我们可以看到,我们首先定义了一个moto类,然后写一个私有的构造函数,这里我们并没有在构造函数里加参数,在这里构造函数可以不要,其实系统运行的时候,他会自动创建一个该类的构造函数,然后我们写一个该类的静态的方法GetInstance(),在这个方法里实例化当前的moto类,并返回,在这里我们需要先判断该类有没有已经被初始化了,如果已经被初始化了,则直接返回,这样就可以保证该类只能被实例化一次。
    Study hard and make progress every day.

    更多学习资料请关注"爱游戏爱编程"。


    爱游戏爱编程.jpg

    相关文章

      网友评论

          本文标题:单例模式(Singleton Pattern)

          本文链接:https://www.haomeiwen.com/subject/fypavftx.html