1.情景
用一个服务承载给下位机下发数据的任务,有几个设备,IP不同。可以采用切换ip的设计。但是频繁的切换容易出错。于是采用以ip为ky创建不同的单件服务的方法。就产生了这个实验。
2.代码
using System;
using System.Collections.Generic;
namespace 分组单实例测试
{
class Program
{
Dictionary<string, A> keyValuePairs = new Dictionary<string, A>();
static void Main(string[] args)
{
Console.WriteLine("分组单实例测试");
Program p = new Program();
p.Main();
Console.ReadKey();
}
void Main() {
keyValuePairs.Add("a", new As("a"));
keyValuePairs.Add("b", new As("b"));
A b = getA("b");
Console.WriteLine(b.ip);
A c = getA("c");
Console.WriteLine(c.ip);
}
A getA(string ip) {
//A a = keyValuePairs[ip];
A a;
bool ret = keyValuePairs.TryGetValue(ip,out a);
if (!ret) {
a = new As(ip);
keyValuePairs.Add(ip, a);
}
return a;
}
}
public class A {
public string ip;
}
public class As : A {
public As(string ip2) {
ip = ip2;
}
}
}
3.运行结果