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(); } } }} 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); }