예제 #1
0
        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();
        }
예제 #2
0
        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();
        }