(五)工厂模式
来源:互联网 发布:编程解决鸡兔同笼问题 编辑:程序博客网 时间:2024/05/01 22:29
这个跟之前的简单工厂模式的不同之处在于工厂类factory作为基类存在,算法类operation作为子类存在,不同的工厂子类生成对应大算法子类,不难理解,就直接贴代码了
#include <iostream>#include <string>using namespace std;//算法类 class operation{ public: operation() {} void set_data( double a, double b ) { A=a; B=b; } virtual double get_result() {} protected: double A,B;};class add : public operation{ double get_result() { return A+B; }};class sub : public operation{ double get_result() { return A-B; }};//////////////////////////////////////////////////////////////////工厂类class operation_factory{ public: virtual operation *create_operation() {}}; class add_factory : public operation_factory{ public: operation *create_operation() { return new add; }};class sub_factory : public operation_factory{ public: operation *create_operation() { return new sub; }};int main(){ cout << "输入你的数据" << endl; double a,b; cin >> a >> b; operation_factory *f = new add_factory; operation *op1 = f->create_operation(); op1->set_data( a, b ); cout << op1->get_result() << endl; getchar(); getchar();}
修正了简单工厂模式中不遵守开放-封闭原则。工厂方法模式把选择判断移到了客户端去实现,如果想添加新功能就不用修改原来的类,直接修改客户端即可。
0 0
- (五)工厂模式
- (五)工厂方法模式
- Java设计模式(五) 工厂模式
- 设计模式(五):工厂方法模式
- 设计模式(五)工厂模式
- 设计模式(五)简单工厂模式
- 设计模式—工厂模式(五)
- 设计模式(五):工厂方法模式
- (五)抽象工厂模式详解
- (五)抽象工厂模式详解
- (五)抽象工厂模式详解
- (五)抽象工厂模式详解
- (五)抽象工厂模式详解
- 五、工厂模式(Factory Method Pattern)
- (五)抽象工厂模式详解
- 五、工厂模式
- 五、抽象工厂模式
- 设计模式(五) -- 抽象工厂及各种工厂总结
- 文件下载
- Noip 2013 Day1 T3 货车运输 启发式并查集树
- 关于Activity生命周期的管理
- Eclipse中跟踪调试Android源代码&&Android中的菜单显示风格
- 在"运行"下运行的命令
- (五)工厂模式
- 常量指针与指针常量的区别(转帖)
- 文件上传
- 并查集 ,删除节点(图画展示)
- 项目四。工资类数组
- 文件操作java源码
- information chaos
- 天津丽芸网络科技有限公司,代理费还给我
- [Ubuntu]基于openssl的MD5加密C语言实现