首页 > 代码库 > 单件模式(Singleton创建型)c#简单例子
单件模式(Singleton创建型)c#简单例子
单件(Singleton创建型模式)c#简单例子
需要生成一个实例时,可采用单件模式
例子中只可生成一个玩家,并对玩家进行测试。单线程例子如下:
namespace singletonpattern { public partial class SingletonForm : Form { public SingletonForm() { InitializeComponent(); } private void btnDisplay_Click(object sender, EventArgs e) { player player1 = player.GetPlayer; player1.jump = "跳一跳"; player1.move = "走一走";//对player1赋值 listBox1.Items.Add("------play1.jump,player1.move-------"); listBox1.Items.AddRange(new string[] { player1.jump, player1.move }); player player2 = player.GetPlayer;//未对player2赋值,但值与player1相同 listBox1.Items.Add("------play2.jump,player2.move-------"); listBox1.Items.AddRange(new string[] { player2.jump, player2.move }); player1.jump = "跳一跳,跑一跑"; player1.move = "走一走,看--看";//修改的player1,player2也被修改,说明是同一个类 listBox1.Items.Add("------play2.jump,player2.move-------"); listBox1.Items.AddRange(new string[] { player2.jump, player2.move }); listBox1.Items.Add(object.ReferenceEquals(player1, player2));//显示为true,说明两个为同一个类 } } class player { private player()//单例第一步,设构造函数为私有的。 { } private static player getplayer; public static player GetPlayer//第二步获取单例 { get { if (getplayer == null)//判断是否实例唯一 { getplayer = new player(); } return getplayer; } } public string jump { get; set; }//单例中的属性 public string move { get; set; } } }其中
private static player getplayer; public static player GetPlayer//第二步获取单例 { get { if (getplayer == null)//判断是否实例唯一 { getplayer = new player(); } return getplayer; } }可简化为一句
public static readonly player GetPlayer = new player();//简化单例模式
单件模式(Singleton创建型)c#简单例子
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。