Design Patterns
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
maze_factory.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_H_
7 #define CREATIONAL_ABSTRACTFACTORY_MAZE_FACTORY_H_
8 
10 
11 namespace creational
12 {
13 namespace abstractfactory
14 {
16 {
17  public:
18  ~MazeFactory() override;
19 
20  virtual commons::Maze *MakeMaze() const override;
21  virtual commons::Wall *MakeWall() const override;
22  virtual commons::Room *MakeRoom(const int& room_number) const override;
23  virtual commons::Door *MakeDoor(const commons::Room& first_room, const commons::Room& second_room) const override;
24 
26 
27  protected:
28  MazeFactory();
29 
30  private:
31  static MazeFactoryInterface* instance_;
32 };
33 }
34 }
35 
36 #endif
37 
virtual commons::Room * MakeRoom(const int &room_number) const override
Definition: maze_factory.cc:34
virtual commons::Maze * MakeMaze() const override
Definition: maze_factory.cc:24
Definition: bombed_maze_factory.cc:11
virtual commons::Door * MakeDoor(const commons::Room &first_room, const commons::Room &second_room) const override
Definition: maze_factory.cc:39
Definition: room.h:16
virtual commons::Wall * MakeWall() const override
Definition: maze_factory.cc:29
~MazeFactory() override
Definition: maze_factory.cc:19
Definition: wall.h:15
Definition: maze_factory_interface.h:17
Definition: door.h:16
static MazeFactoryInterface * Instance()
Definition: maze_factory.cc:46
Definition: maze.h:17
MazeFactory()
Definition: maze_factory.cc:14
Definition: maze_factory.h:15