软件设计模式之简单工厂模式

来源:互联网 发布:淘宝进货网哪个网站好 编辑:程序博客网 时间:2024/05/16 04:43

简单工厂模式

        概念:简单工厂模式是由一个工厂类通过传入参数来决定产生何种产品类的模式。工厂类通过一个可以被外部调用的公共方法来获得参数,从而决定产生何种产品。消费者在这个过程中并不需要知道工厂是如何产生产品的。

以一个二元计算器实例来说明简单工厂模式的实现原理:

有如下类:

1:binaryOperation:它是个抽象类,主要含有两个运算数据,和运算方式,其中运算方式设为纯虚函数,在后面的加法类,减法类中具体实现。

2:binaryOperationAdd:它是binaryOperation的派生类,实现了其中的运算方式(这里为加法),同样可以定义相应的减法类,乘法类等。

3:factory:它作为此模式中的工厂。内部含有一个op成员(其值可以为+,-,*,/等);一个可以被外部访问的setOp()方法;一个返回值为binaryOperation指针类型的方法,此方法通过op值来决定产生何种运算类的实例,如op为+,则产生binaryOperationAdd的对象。

用如下代码来描述他们之间的关系:

class binaryOperation //这是一个抽象类,将由后面的binaryOperationAdd和//binaryOperationSub继承并实现其getResult方法

{

private

double num1, num2;

public:
void setNum1(double num1) {this->num1 = num1;}
void setNum2(double num2) {this->num2 = num2;}
double getNum1(){return num1;}
double getNum2(){return num2;}
virtual double getResult() = 0;

};

class binaryOperationAdd : public binaryOperation

{

public : double getResult(){return getNum1() + getNum2();}

};
class binaryOperationSub : public binaryOperation
{
  
public : double getResult(){return getNum1() - getNum2();}
};
class factory
{
   private :
      char op;
      binaryOperation *operationObject;
   public :
      void setOp(char op){this->op = op;}
      binaryOperation *getOperationObject()//外部调用工厂的这个方法来获

//取运算对象。
     
{
         if(op == '+') operationObject = new binaryOperationAdd(); //

//是工厂模型的关键,通过外部传送的参数op来决定产生加法对象还

//是减法对象
if(op == '-') operationObject = new binaryOperationSub();
return operationObject;

}
}

实用范围:以百度搜索为例,我们将需要的内容关键字输入百度搜索框,百度在获取此关键字后通过后台一系列的算法将含有或接近关键字的内容返回给我们。其中百度就相当于一个工厂,关键字输入框相当于工厂供外部访问的方法,产生的搜索结果相当于工厂的产品,而人们在输入关键字后也不需要知道百度是如何返回结果的。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 玉林市住房公积金管理中心 南宁住房公积金网 宜宾市住房公积金管理中心 重庆住房公积金 银川住房公积金查询个人账户 洛阳住房公积金查询 住房公积金卡 东莞住房公积金查询 南京住房公积金管理中心 成都住房公积金 广西住房公积金查询 广西区直住房公积金查询入口 哈尔滨住房公积金管理中心 武汉住房公积金查询个人账户 重庆市住房公积金管理中心 渭南住房公积金查询 咸阳市住房公积金管理中心 宁德住房公积金查询 苏州住房公积金管理中心 太原住房公积金 萍乡市住房公积金个人查询 深圳住房公积金查询余额 长春市住房公积金网 潍坊市住房公积金管理中心 阜阳市住房公积金查询 赣州住房公积金 太原住房公积金查询个人账户 郑州市住房公积金查询 杭州住房公积金管理中心 乐山市住房公积金管理中心 长春住房公积金查询 青海住房公积金查询网 住房公积金管理 宜春住房公积金查询 惠州市住房公积金管理中心 玉林住房公积金查询个人账户 枣庄住房公积金查询 六安住房公积金管理中心 厦门住房公积金查询 渭南市住房公积金个人查询 乐山住房公积金查询个人账户