Source code for the following: Design Solutions for fine pattern -GoF 23 design patterns to achieve desorption and C ++ source code
//Product.h
#pragma once class Product { public: virtual ~Product() = 0; protected: Product(); private: }; class ConcreateProduct:public Product { public: ConcreateProduct(); ~ConcreateProduct(); private: protected: };
//Product.cpp
#include"Product.h" #include<iostream> Product::Product() { } Product::~Product() { } ConcreateProduct::ConcreateProduct() { std::cout << "ConcreateProduct" << std::endl; } ConcreateProduct::~ConcreateProduct() { }
//Factory.h
#pragma once class Product; class Factory { public: virtual ~Factory() = 0; virtual Product* CreateProduct() = 0; protected: Factory(); private: }; class ConcreateFactory:public Factory { public: ConcreateFactory(); ~ConcreateFactory(); Product* CreateProduct(); protected: private: };
//Factory.cpp
#include"Factory.h" #include"Product.h" #include<iostream> Factory::Factory(){} Factory::~Factory(){} ConcreateFactory::ConcreateFactory() { std::cout << "ConcreateFactory" << std::endl; } ConcreateFactory::~ConcreateFactory(){} Product* ConcreateFactory::CreateProduct() { return new ConcreateProduct(); }
//main.cpp
#include " Factory.h " #include " Product.h " #include <the iostream> int main ( int args, char * the argv []) { Factory's * FAC = new new ConcreateFactory (); // the class to specific retarder Subclass. Pro = fac * Product> CreateProduct (); // the class object package. Pro1 = fac * Product> CreateProduct (); return 0 ; }