From f9cb26728021bf85a61f263fdb711c093a7f749a Mon Sep 17 00:00:00 2001 From: angeld55 Date: Tue, 31 May 2022 20:21:57 +0300 Subject: Sem 14 --- Sem. 14/Farm/Factory/Factory.cpp | 13 +++++++++++++ Sem. 14/Farm/Factory/Factory.h | 10 ++++++++++ 2 files changed, 23 insertions(+) create mode 100644 Sem. 14/Farm/Factory/Factory.cpp create mode 100644 Sem. 14/Farm/Factory/Factory.h (limited to 'Sem. 14/Farm/Factory') 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 -- cgit v1.3.1-23-gd82d