public AChessman GetChessMan(string chess) { AChessman res = null; if (!mCache.ContainsKey(chess)) { switch (chess) { case "black": res = new BlackChessman(); break; case "white": res = new WhiteChessman(); break; default: break; } mCache[chess] = res; } else { res = mCache[chess]; } return(res); }
static void Main(string[] args) { FiveChessmanFactory factory = FiveChessmanFactory.GetInstance(); AChessman chess = null; chess = factory.GetChessMan("white"); chess.point(2, 2); chess = factory.GetChessMan("black"); chess.point(1, 1); chess = factory.GetChessMan("white"); chess.point(1, 3); chess = factory.GetChessMan("black"); chess.point(3, 1); chess = factory.GetChessMan("white"); chess.point(2, 1); chess = factory.GetChessMan("black"); chess.point(2, 3); chess = factory.GetChessMan("white"); chess.point(1, 2); chess = factory.GetChessMan("black"); chess.point(3, 2); chess = factory.GetChessMan("white"); chess.point(3, 3); Console.WriteLine("平局"); Console.ReadKey(); }