Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 14 / Farm / Factory
diff options
context:
space:
mode:
Commitf9cb26728021bf85a61f263fdb711c093a7f749a (patch)
Author
 angeld55 <angel_dimitriev@abv.bg>
2022-05-31 20:21:57 +0300
Committer
 angeld55 <angel_dimitriev@abv.bg>
2022-05-31 20:21:57 +0300
Files655fae8997b597c040d0dde06598a6414f64c21e /Sem. 14/Farm/Factory
Object-oriented_programming_FMI-f9cb26728021bf85a61f263fdb711c093a7f749a.tar
Object-oriented_programming_FMI-f9cb26728021bf85a61f263fdb711c093a7f749a.tar.gz
Object-oriented_programming_FMI-f9cb26728021bf85a61f263fdb711c093a7f749a.zip
Parente012bcac0a5c5fc804fbeadb0e8ab382c5e6feb7 (diff)
Sem 14
2 files changed, 23 insertions, 0 deletions
-rw-r--r--Sem. 14/Farm/Factory/Factory.cpp13
-rw-r--r--Sem. 14/Farm/Factory/Factory.h10
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