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
网友评论