static void Main(string[] args) { MazeGame game = new MazeGame(); MazePrototypeFactory protoTypeFactory = new MazePrototypeFactory(new Maze(), new Wall(), new Room(1), new Door()); Maze maze = game.CreateMazeByAbstractFactory(protoTypeFactory); maze.RoomNo(1).Enter(); MazeGame game2 = new MazeGame(); MazePrototypeFactory protoTyprFactory2 = new MazePrototypeFactory(new Maze(), new WallWithBomb(), new RoomWithABomb(1), new Door()); Maze maze2 = game.CreateMazeByAbstractFactory(protoTyprFactory2); maze2.RoomNo(1).Enter(); }
static void Main(string[] args) { // Regular factory var mazeFactory = new MazeFactory(); var maze = mazeFactory.CreateMaze(); // Factory methods var factoryWithFactoryMethods = new BombedMazeGameFactoryMethod(); var bombedMaze = factoryWithFactoryMethods.CreateMaze(); // Prototype factory var prototypeFactory = new MazePrototypeFactory(new Maze(), new BombedWall(), new Door(), new RoomWithBomb(1)); var wiredMaze = prototypeFactory.CreateMaze(); }