设计模式学习--原型

来源:互联网 发布:数据化运营速成手册 编辑:程序博客网 时间:2024/04/30 20:51

--来自《设计模式:可复用面向对象软件的基础》


目的

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

 


 

 

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);


0 0