Add abstract-factory pattern example
This commit is contained in:
35
cpp/patterns/abstract-factory/main.cpp
Normal file
35
cpp/patterns/abstract-factory/main.cpp
Normal file
@@ -0,0 +1,35 @@
|
||||
|
||||
#include <array>
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
#include "abstract-factory.hpp"
|
||||
|
||||
int main(const int argc, const char * argv[]) {
|
||||
// Testing GearFactory
|
||||
GearFactory gearFactory;
|
||||
const int gearsRequired = 5;
|
||||
|
||||
std::cout << "Testing " << gearFactory.getName() <<"...\nMaking 5 Gears...\n";
|
||||
for (int i = 0; i < gearsRequired; i++) gearFactory.requestPart();
|
||||
std::cout << std::endl << gearFactory.getName() << " inventory:\n";
|
||||
gearFactory.showStock();
|
||||
|
||||
// Testing SpringFactory
|
||||
SpringFactory springFactory;
|
||||
const int springsRequired = 5;
|
||||
for (int i = 0; i < springsRequired; i++) springFactory.requestPart();
|
||||
std::cout << std::endl << springFactory.getName() << " inventory:\n";
|
||||
springFactory.showStock();
|
||||
|
||||
|
||||
// Making custom gears and springs
|
||||
for (int i = 0; i < gearsRequired; i++) gearFactory.requestPart("Big Gear", 2.5f);
|
||||
std::cout << std::endl << gearFactory.getName() << " inventory:\n";
|
||||
gearFactory.showStock();
|
||||
|
||||
for (int i = 0; i < springsRequired; i++) springFactory.requestPart("Big Spring", 5.0f);
|
||||
std::cout << std::endl << springFactory.getName() << " inventory:\n";
|
||||
springFactory.showStock();
|
||||
}
|
||||
Reference in New Issue
Block a user