简单工厂模式实现粗略的四则运算

来源:互联网 发布:js 排序算法 编辑:程序博客网 时间:2024/05/16 01:07

头文件:

Factory.h

#ifndef FACTORY_H#define FACTORY_H#include "product.h"class Factory{public:    Factory();    Product *getProduct(enum Type type);};#endif // FACTORY_H

Product.h

#ifndef PRODUCT_H#define PRODUCT_Henum Type{PA,PB,PC,PD};class Product{public:    Product();    virtual int Operation(int a,int b)=0;};class ProductA:public Product{public:    int Operation(int a, int b);};class ProductB:public Product{public:    int Operation(int a, int b);};class ProductC:public Product{public:    int Operation(int a, int b);};class ProductD:public Product{public:    int Operation(int a, int b);};#endif // PRODUCT_H

源文件:

Factory.c

#include "factory.h"Factory::Factory(){}Product *Factory::getProduct(Type type){    switch (type) {    case PA:        return new ProductA;        break;    case PB:        return new ProductB;        break;    case PC:        return new ProductC;        break;    case PD:        return new ProductD;        break;    default:        break;    }}
Product.c

#include "product.h"Product::Product(){}int ProductA::Operation(int a, int b){    return a+b;}int ProductB::Operation(int a, int b){    return a-b;}int ProductC::Operation(int a, int b){    return a*b;}int ProductD::Operation(int a, int b){    return a/b;}
mian.c

#include <iostream>#include "factory.h"using namespace std;int main(){    cout << "Hello World!" << endl;    Factory *f = new Factory;    cout << f->getProduct(PA)->Operation(30,20);    return 0;}

原创粉丝点击