当前位置 : 主页 > 手机开发 > 其它 >

工厂模式

来源:互联网 收集:自由互联 发布时间:2021-06-19
简单工厂模式,是一种实例化对象的方式,只要输入需要实例化对象的名字,就可以通过工厂对象的相应工厂函数来制造你需要的对象。 简单工厂模式的核心是,对于一个父类的多个继

简单工厂模式,是一种实例化对象的方式,只要输入需要实例化对象的名字,就可以通过工厂对象的相应工厂函数来制造你需要的对象。

简单工厂模式的核心是,对于一个父类的多个继承子类,工厂对象的工厂函数根据用户输入,

class Operation
{
private:
double m_a,m_b;
public:
void setA(double a){m_a=a;}
double getA(){return m_a;}
double getB(){return m_b;}
void setB(double b){m_b=b;}
double virtual getresult(){return 0;}
operatoion():m_a(0),m_b(0){}
};

class Add: pulic operation
{
public:
doble getresult()
{
return getB()+getA();
}
}

class Mul: pulic operation
{
public:
doble getresult()
{
return getB()-getA();
}
}
class Div: pulic operation
{
public:
doble getresult()
{
return getB()*getA();
}
}
class Sub: pulic operation
{
public:
doble getresult()
{
return getB()/getA();
}
}
class SimpleFactor
{

public:
static Opertion* CreateOperator(char ch)
{
Operation *p;
switch(ch)
{
case ‘+‘:
p=new Add();
break;
case ‘-‘:
p=new Sub();
break;
case ‘*‘:
p=new Mul();
break;
case ‘\‘:
p=new Div();
break;
}
return p;

}
};

int main()
{

double A=0; double B=0; char ch=‘\0‘; cin>>A>>ch>>B; tr1::shared_ptr<Operation> op(SimpleFactory::CreateOperator(ch)); op->set(A); op->set(B); cout<<op->getresult()<<endl;}

网友评论