首页 > 代码库 > 简单工厂模式
简单工厂模式
简单工厂模式:用一个类负责创建实例的任务,通常是此类中的一个static函数具体负责,此函数中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类。这些实例化的类都派生自同一个父类。使用简单工厂模式,在新增分支时,要新增一个功能子类同时在工厂类中增加逻辑判断分支。
//简单工厂模式//父类class Operation{public: Operation() {} virtual ~Operation() {}; void setA( double a ) { m_a = a; } void setB( double b ) { m_b = b; } virtual double getResult() = 0;protected: double m_a; double m_b;};//加法子类class Add : public Operation{public: Add() {} virtual ~Add() {} virtual double getResult() { return m_a + m_b; }};//乘法子类class Mul : public Operation{public: Mul() {} virtual ~Mul() {} virtual double getResult() { return m_a * m_b; }};//工厂类class OperationFactory{public: OperationFactory() {} ~OperationFactory() {} static Operation* createOperation( char ch ) { Operation* ope = NULL; switch ( ch ) { case ‘+‘ : ope = new Add(); break; case ‘*‘ : ope = new Mul(); break; } return ope; }};int main(){ Operation *ope = OperationFactory::createOperation( ‘*‘ ); ope->setA( 3 ); ope->setB( 2 ); double re = ope->getResult(); return 0;}
简单工厂模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。