diff options
Sem 14
2 files changed, 23 insertions, 0 deletions
| -rw-r--r-- | Sem. 14/Farm/Factory/Factory.cpp | 13 | ||||
| -rw-r--r-- | Sem. 14/Farm/Factory/Factory.h | 10 |
diff --git a/Sem. 14/Farm/Factory/Factory.cpp b/Sem. 14/Farm/Factory/Factory.cpp new file mode 100644 index 0000000..d7d6ec5 --- /dev/null +++ b/Sem. 14/Farm/Factory/Factory.cpp @@ -0,0 +1,13 @@ +#include "Factory.h" + + +Animal* AnimalFactory::createAnimal(Animal::AnimalType type) +{ + switch (type) + { + case Animal::AnimalType::Cat: return new Cat(); + case Animal::AnimalType::Dog: return new Dog(); + case Animal::AnimalType::Mouse: return new Mouse(); + } + return nullptr; +} diff --git a/Sem. 14/Farm/Factory/Factory.h b/Sem. 14/Farm/Factory/Factory.h new file mode 100644 index 0000000..5532f4f --- /dev/null +++ b/Sem. 14/Farm/Factory/Factory.h @@ -0,0 +1,10 @@ +#include "../Animals/Animal.h" +#include "../Animals/Dog.h" +#include "../Animals/Cat.h" +#include "../Animals/Mouse.h" + +class AnimalFactory +{ +public: + virtual Animal* createAnimal(Animal::AnimalType type); +};
\ No newline at end of file |
