一、单例模式(Singleton Pattern)

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.

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


一、单例模式(Singleton Pattern)_第1张图片
爱游戏爱编程.jpg

你可能感兴趣的:(一、单例模式(Singleton Pattern))