Допустим есть примерно такая схема:
interface IStateGUI
{
}
class GUIDisconnected: IStateGUI
{
private static GUIDisconnected Instance = null;
private static Object Sync = new Object();
public int Parameter { get; private set; }
private GUIDisconnected()
{
}
private GUIDisconnected(int _parameter)
{
this.Parameter = _parameter;
}
public static GUIDisconnected GetInstance(int _parameter)
{
if (GUIDisconnected.Instance == null)
{
lock (Sync)
{
if (GUIDisconnected.Instance == null)
GUIDisconnected.Instance = new GUIDisconnected(_parameter);
}
}
return GUIDisconnected.Instance;
}
}
Кроме GUIDisconnected есть еще куча классов, реализующих IStateGUI. Можно ли каким-нибудь способом избежать копипаста статических методов этого класса? Так как эти методы по сути будут различаться только идентификатором класса (GUIDisconnected). Пытался применить шаблоны, но как то не сложилось. Еще проблема в том, что Instance и Sync тоже статические, вобщем наследование тут как-то не катит...