Design Patterns
enchanted_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_ENCHANTED_MAZE_FACTORY_H_
7 #define CREATIONAL_ABSTRACTFACTORY_ENCHANTED_MAZE_FACTORY_H_
8 
9 #include "maze_factory.h"
10 
11 #include "../mazeparts/spell.h"
12 
13 namespace creational
14 {
15 namespace abstractfactory
16 {
18 {
19  public:
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 
25  protected:
26  virtual commons::Spell *CastSpell() const;
27 };
28 }
29 }
30 
31 #endif
32 
virtual commons::Wall * MakeWall() const override
Definition: enchanted_maze_factory.cc:20
virtual commons::Spell * CastSpell() const
Definition: enchanted_maze_factory.cc:36
Definition: spell.h:15
Definition: bombed_maze_factory.cc:11
virtual commons::Door * MakeDoor(const commons::Room &first_room, const commons::Room &second_room) const override
Definition: enchanted_maze_factory.cc:31
virtual commons::Maze * MakeMaze() const override
Definition: enchanted_maze_factory.cc:15
Definition: room.h:16
Definition: enchanted_maze_factory.h:17
Definition: wall.h:15
Definition: maze_factory_interface.h:17
Definition: door.h:16
virtual commons::Room * MakeRoom(const int &room_number) const override
Definition: enchanted_maze_factory.cc:25
Definition: maze.h:17