創建型模式之單件模式(轉)
来源:互联网 发布:sql语音中删除表命令 编辑:程序博客网 时间:2024/05/17 22:52
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace Walter.K.Wang.Singleton
...{
/**//// <summary>
/// Singleton模式
/// </summary>
public class LoadBalancer
...{
private static LoadBalancer instance;
private ArrayList servers = new ArrayList();
private Random random = new Random();
private static object syncLock = new object();
/**//// <summary>
/// 構造函數
/// </summary>
protected LoadBalancer()
...{
servers.Add("服務一");
servers.Add("服務二");
servers.Add("服務三");
servers.Add("服務四");
servers.Add("服務五");
}
/**//// <summary>
/// 程序建立接口
/// </summary>
/// <returns></returns>
public static LoadBalancer GetLoadBalancer()
...{
if (instance == null)
...{
lock (syncLock)
...{
if (instance == null)
...{
instance = new LoadBalancer();
}
}
}
return instance;
}
/**//// <summary>
/// 返回創建的結果集
/// </summary>
public string Server
...{
get
...{
int r = random.Next(servers.Count);
return servers[r].ToString();
}
}
}
}
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace Walter.K.Wang.Singleton
...{
/**//// <summary>
/// Singleton模式
/// </summary>
public class LoadBalancer
...{
private static LoadBalancer instance;
private ArrayList servers = new ArrayList();
private Random random = new Random();
private static object syncLock = new object();
/**//// <summary>
/// 構造函數
/// </summary>
protected LoadBalancer()
...{
servers.Add("服務一");
servers.Add("服務二");
servers.Add("服務三");
servers.Add("服務四");
servers.Add("服務五");
}
/**//// <summary>
/// 程序建立接口
/// </summary>
/// <returns></returns>
public static LoadBalancer GetLoadBalancer()
...{
if (instance == null)
...{
lock (syncLock)
...{
if (instance == null)
...{
instance = new LoadBalancer();
}
}
}
return instance;
}
/**//// <summary>
/// 返回創建的結果集
/// </summary>
public string Server
...{
get
...{
int r = random.Next(servers.Count);
return servers[r].ToString();
}
}
}
}
private void 單間模式ToolStripMenuItem_Click(object sender, EventArgs e)
...{
LoadBalancer b1 = LoadBalancer.GetLoadBalancer();
LoadBalancer b2 = LoadBalancer.GetLoadBalancer();
LoadBalancer b3 = LoadBalancer.GetLoadBalancer();
LoadBalancer b4 = LoadBalancer.GetLoadBalancer();
if (b1 == b2 && b2 == b3 && b3 == b4)
...{
MessageBox.Show("變量相同", "友情提醒", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
string sMsg = "";
for (int i = 0; i < 15; i++)
...{
sMsg += b1.Server+" ";
}
MessageBox.Show(sMsg, "友情提醒", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
...{
LoadBalancer b1 = LoadBalancer.GetLoadBalancer();
LoadBalancer b2 = LoadBalancer.GetLoadBalancer();
LoadBalancer b3 = LoadBalancer.GetLoadBalancer();
LoadBalancer b4 = LoadBalancer.GetLoadBalancer();
if (b1 == b2 && b2 == b3 && b3 == b4)
...{
MessageBox.Show("變量相同", "友情提醒", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
string sMsg = "";
for (int i = 0; i < 15; i++)
...{
sMsg += b1.Server+" ";
}
MessageBox.Show(sMsg, "友情提醒", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
- 創建型模式之單件模式(轉)
- C# 设计模式之单件模式
- c# 设计模式之单件模式
- 浅析设计模式之单件模式
- 设计模式 之 单件模式
- 设计模式之单件模式
- 设计模式之单件模式
- 设计模式之Singleton(单件模式)
- 设计模式之---单件模式
- c++ 设计模式之单件模式
- 设计模式之单件模式 singleton
- 设计模式之单件模式
- 设计模式之单件模式
- 设计模式 之 单件模式
- 设计模式之单件模式
- 设计模式之单件模式
- 设计模式之单件模式
- 设计模式之单件模式
- ASP.NET的实时天气及24小时天气预报(C#)
- 程序测试规范
- 香烟爱上火柴就注定被伤害…
- 随笔
- 获得DW中所有对象
- 創建型模式之單件模式(轉)
- 創建型模式之抽象工廠(轉)
- 創建型模式之創建者模式
- 創建型模式之工廠方法模式
- 創建型模式之原型模式
- 事务基础2--事务属性之隔离层级(Isolation level)
- VC多线程解决有些项目中的数据存取问题
- assert 和 if 的区别
- 送给职场人的七日忠告