单例学习

来源:互联网 发布:如何编写软件测试报告 编辑:程序博客网 时间:2024/05/16 11:19
单例——程序运行时,一个类最多同时存在一个唯一的对象,易于访问对象。
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);}  }}