Design Patterns
maze_factory_interface.h
Go to the documentation of this file.
1 // Based on "Design Patterns: Elements of Reusable Object-Oriented Software"
2 // book by Erich Gamma, John Vlissides, Ralph Johnson, and Richard Helm
3 //
4 // Created by Bartosz Rachwal. The National Institute of Advanced Industrial Science and Technology, Japan.
5 
6 #ifndef CREATIONAL_ABSTRACTFACTORY_MAZE_FACTORY_INTERFACE_H_
7 #define CREATIONAL_ABSTRACTFACTORY_MAZE_FACTORY_INTERFACE_H_
8 
9 #include "../mazeparts/maze.h"
10 #include "../mazeparts/wall.h"
11 #include "../mazeparts/door.h"
12 
13 namespace creational
14 {
15 namespace abstractfactory
16 {
18 {
19  public:
20  virtual ~MazeFactoryInterface() { }
21 
22  virtual commons::Maze *MakeMaze() const = 0;
23  virtual commons::Wall *MakeWall() const = 0;
24  virtual commons::Room *MakeRoom(const int& room_number) const = 0;
25  virtual commons::Door *MakeDoor(const commons::Room& first_room, const commons::Room& second_room) const = 0;
26 };
27 }
28 }
29 
30 #endif
31 
virtual commons::Maze * MakeMaze() const =0
Definition: bombed_maze_factory.cc:11
virtual commons::Door * MakeDoor(const commons::Room &first_room, const commons::Room &second_room) const =0
Definition: room.h:16
virtual commons::Room * MakeRoom(const int &room_number) const =0
Definition: wall.h:15
Definition: maze_factory_interface.h:17
Definition: door.h:16
virtual ~MazeFactoryInterface()
Definition: maze_factory_interface.h:20
virtual commons::Wall * MakeWall() const =0
Definition: maze.h:17