简单工厂模式,就是用一个单独的类,解决如何实例化对象的问题!
充分使用C++语言的封装、继承、多态特性!
例子1:输入:两个操作数、一个运算符
输出:计算结果
//类的设计
基类: {n1,n2;virtual GetResult()} //封装!!两个操作数,计算结果的虚函数
子类:加法{GetResult()} //虚函数具体实现
子类:减法{GetResult()} //虚函数具体实现
子类:乘法{GetResult()} //虚函数具体实现
…… //更多子类,按需设计
工厂类:{CreateOperate(string operate)} //多态!!函数功能是:父类对象,根据operate,用子类实例化,并返回这个对象。
//类结构图
例子2:输入:商品的单价和数量
输出:消费额
//类的设计
基类: {acceptCash(double money)} //计算消费额的虚函数,参数为原价,返回当前价
子类:正常收费{acceptCash(double money)} //虚函数具体实现
子类:打折促销
{moneyRebate;//折扣率
CashRebate(string moneyRebate)//构造函数,设置折扣率
acceptCash(double money)//虚函数具体实现}
子类:满减促销
{moneyCondition,moneyReturn;//消费满金额,消费减金额
CashReturn(string moneyCondition,string moneyReturn)//构造函数,设置满减参数
acceptCash(double money)//虚函数具体实现}
…… //更多子类,按需设计
工厂类:{CreateCashAccepte(string type)} //多态!!函数功能是:父类对象,根据type,用子类实例化,并返回这个对象。
//类结构图