题目:实现计算器的输入2个数和运算符,得到结果
工程结构:
(1)头文件
COperationFactory.h(运算符工厂类)
(2)源文件
SimpleFactory.cpp(客户端应用类,主函数所在)
(3)运算类
COperation.cpp(运算符基类)
COperation.h
COperationAdd.h(加法运算符子类,继承于COperation)
COperationDiv.h (除法运算符子类,继承于COperation)
COperationMul.h (乘法运算符子类,继承于COperation)
COperationSub.h(减法运算符子类,继承于COperation)
============= 代码实现部分 =============
COperationFactory.h(运算符工厂类)
COperation.cpp(运算符基类)
COperation.h
COperationAdd.h(加法运算符子类,继承于COperation)
COperationDiv.h (除法运算符子类,继承于COperation)
COperationMul.h (乘法运算符子类,继承于COperation)
COperationSub.h(减法运算符子类,继承于COperation)
SimpleFactory.cpp(客户端应用类,主函数所在)
总结:
(1)业务的封装:就是让业务逻辑与界面逻辑分开,让它们之间的耦合度下降,只有分离开,才可以达到容易维护或者扩展
(2)如果要修改任何一个运算符类的算法,都不需要提供其他运算符类算法的代码。
(3)用单独的类(COperationFactory)来做创造实例的过程,这就是工厂,简单运算工厂类。用户只需要输入运算符符号,工厂就实例化出合适的对象,通过多态,返回父类的方式实现了计算器的结果