单例——程序运行时,一个类最多同时存在一个唯一的对象,易于访问对象。
1、私有化构造方法;
2、在类的内部提供一个静态实例;
3、提供接口给外界获取实例
1、私有化构造方法;
2、在类的内部提供一个静态实例;
3、提供接口给外界获取实例
using System;
namespace lesson01{
public class Player { //玩家属性
public string name;
public int level;
public int hp;
public int maxHp;
public static Player GetInstance () { //3、提供接口给外界获取实例
if (null == _instance) {
_instance = new Player () ;
}
return _instance;
}
private static Player _instance; //2、在类的内部提供一个静态实例
private Player () { //1、私有化构造方法,不让外界随意创建对象;
}
}
public class Bag {
public void UseHp () {
Player p = Player.GetInstance () ;
p.hp += 10;
p.hp = p.hp > p.maxHp ? p.maxHp : p.hp;
}
}
class MainClass {
public static void Main ( string[] args ) {
Player p = Player.GetInstance () ;
p.name = "苏利文";
p.level = 1;
p.hp = 1;
p.maxHp = 100 ;
Bag b = new Bag ();
b.UseHp ();
Console.WriteLine (p.hp);
Player p2 = Player.GetInstance () ;
Console.WriteLine (p2.name);
}
}
}