【Linux】设计模式-----简单工厂模式

使用简单工厂模式实现Linux中的计算器
简单工厂模式是一种设计模式,它允许根据输入创建所需的具体对象。在Linux环境中,这种模式可以应用于创建计算器实例,通过基类的虚函数调用实现多态,根据用户需求实例化不同计算器类。

概念:简单工厂模式即,只需要输入实例化对象的名称,工厂类就可以实例化出来需要的类。
核心:实现工厂模式的核心就是多个派生类public继承基类,同时根据用户的需求在简单工厂类里面实例化基类的对象,从而根据基类里面的虚函数来实现对派生类的函数调用,同时实现多态。
如图:
这里写图片描述

利用简单计算器的实例来实现工厂模式:


#include<iostream>
using namespace std;

class _operator{
private:
    int a;
    int b;
public:
    void setA(int _a) {a = _a;}
    void setB(int _b) {b = _b;}
    int GetA() {return a;}
    int GetB() {return b;}
    virtual int result() {return 0;}// 虚函数,为了通过基类的指针来调用派生类的对象
};

//通过对基类的虚函数进行不同的重写,在调用的时候可以根据不同的需求进行不同的实例化
class Add:public _operator{
    int result() {return GetA() + GetB();}
};


class Sub:public _operator{
    int result() {return GetA() - GetB();}
};


class Mul:public _operator{
    int result() {return GetA() * GetB();}  
};


class Div:public _operator{
    int result() {return GetA() / GetB();}  
};

class factory{  
public:

    static _operator* GetOperator(char ch){
        _operator* p = NULL;
        switch(ch){
            case '+':
                p = new Add();
                break;
            case '-':
                p = new Sub();
                break;
            case '*':
                p = new Mul();
                break;
            case '/':
                p = new Div();
                break;
            default:
                exit(1);
        }
        return p;
    }
};

注:利用输入的不同,实例化不同的类对象,同时这些类有事通过继承基类的,那么从而在基类的指针来调用基类的虚函数,从而达到调用不同的派生类的目的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值