我想通过我的抽象字符内的类使用Singleton设计模式,使所有的子类可以存取权限的对象实例。 这里是我的单例类:
class GatewayAccess
{
private static GatewayAccess ph;
// Constructor is 'protected'
protected GatewayAccess()
{
}
public static GatewayAccess Instance()
{
// Uses lazy initialization.
// Note: this is not thread safe.
if (ph == null)
{
ph = new GatewayAccess();
Console.WriteLine("This is the instance");
}
return ph;
}
}
我可以用这个在我的Program.cs创建一个实例没有问题:
static void Main(string[] args)
{
GameEngine multiplayer = new GameEngine(5);
Character Thor = new Warrior();
Thor.Name = "Raymond";
Thor.Display();
Thor.PerformFight();
Thor.PerformFight();
multiplayer.Attach(Thor);
GatewayAccess s1 = GatewayAccess.Instance();
GatewayAccess s2 = GatewayAccess.Instance();
if (s1 == s2)
{
Console.WriteLine("They are the same");
}
Console.WriteLine(Thor.getGamestate());
Console.ReadLine();
}
因此,我想要做的就是让子类,即,壮士一去访问网关的情况下,我无法弄清楚如何做到这一点的继承的东西是困惑我。 基本上网关接入是接入点的数据库只能有一次一个连接。 单例模式是很容易的理解,它只是其中的组合和继承。 我希望,一旦我实现了这个,那么我可以在一个线程安全的方式做到这一点。
我也想知道Singleton实例怎么会被丢弃,因为它是一个数据库的连接,并且只能由一个字符对象在同一时间内使用,那么一旦角色物用它做,它必须释放单一对象了对?
我试图用方法,我的性格类做这一切,但它无法正常工作。
我明白任何帮助。