
目的
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
Class MazePrototypeFactory :public MazeFactory { Public:
MazePrototypeFactory (Maze*, Wall*, Room*, Door*);
Virtual Maze* MakeMaze() const; Virtual Room* MakeRoom(int) const; Virtual Wall* MakeWall() const; Virtual Door* MakeDoor() const;
Private: Maze* _prototypeMaze; Room* _prototypeRoom; Wall* _prototypeWall; Door* _prototypeDoor; };
MazePrototypeFactory::MazePrototypeFactory (Maze* m, Wall* w, Room* r, Door* d) { _prototypeMaze = m; _prototypeRoom = r; _prototypeWall = w; _prototypeDoor = d; };
Wall* MazePrototypeFactory::prototypeWall() { Return prototypeWall->Clone(); };
//使用基本迷宫构建的原型进行初始化。
//普通的 MazePrototypeFactorysimpleMazeFactory(new Maze, new Wall, new Room, new Door);
//Bombed MazePrototypeFactorybombedMazeFactory(new Maze, new BombedWall, new RoomWithABomb, new Door);
|
近期评论