我有后续类(C#为例)设计模式为唯一对象每ID系统
class A
{
private static Dictionary<int, A> idLookup;
....
private A(id) {...}
public static A Get(id)
{
//does some magic
if (...) { return idLookup[id]; }
else { A a = new A(id); idLookup[a.id] = a; return a; }
}
}
class B
{
private static Dictionary<int, B> idLookup;
....
private B(id) {...}
public static B Get(id)
{
//does some magic
if (...) { return idLookup[id]; }
else { B b = new B(id); idLookup[b.id] = b; return b; }
}
}
... and so on
是否有一个设计模式(在做继承但有一点凌乱),可以删除所有重复码?
上述功能保证只有1个A/B/...实例存在于一个id中。
这不是很多重复的代码。你可以写一个更专业化的词典来使它更容易,然后它将是一个单线。 – 2010-10-05 20:59:23
所以这是一个单线程程序,我假设? – 2010-10-05 21:05:46
@Kirk羊毛,是的......这些东西在多线程代码中会非常壮观地失败。 – jameszhao00 2010-10-05 21:10:38