设计模式-工厂方法模式
来源:互联网 发布:淘宝数据监控 编辑:程序博客网 时间:2024/06/07 03:58
适用情境:与简单工厂模式相比,由客户端做判断.
// product.h#ifndef PRODUCT_H#define PRODUCT_Hclass Product{public: Product(); virtual void Show() = 0;};#endif // PRODUCT_H
// product.cpp#include "product.h"Product::Product(){}
// concreteproduct.h#ifndef CONCRETEPRODUCT_H#define CONCRETEPRODUCT_H#include "product.h"class ConcreteProduct : public Product{public: ConcreteProduct(); virtual void Show();};#endif // CONCRETEPRODUCT_H
// concreteproduct.cpp#include "concreteproduct.h"#include <iostream>ConcreteProduct::ConcreteProduct(){}void ConcreteProduct::Show(){ std::cout << "Concrete product" << std::endl;}
// factory.h#ifndef FACTORY_H#define FACTORY_H#include "product.h"class Factory{public: Factory(); virtual Product* CreateProduct() = 0;};#endif // FACTORY_H
// factory.cpp#include "factory.h"Factory::Factory(){}
// concretefactory.h#ifndef CONCRETEFACTORY_H#define CONCRETEFACTORY_H#include "factory.h"#include "product.h"class ConcreteFactory : public Factory{public: ConcreteFactory(); virtual Product* CreateProduct();};#endif // CONCRETEFACTORY_H
// concretefactory.cpp#include "concretefactory.h"#include "concreteproduct.h"ConcreteFactory::ConcreteFactory(){}Product *ConcreteFactory::CreateProduct(){ return new ConcreteProduct();}
// main.cpp#include <iostream>#include "concretefactory.h"#include "concreteproduct.h"using namespace std;int main(int argc, char *argv[]){ Factory *factory = new ConcreteFactory(); Product *product = factory->CreateProduct(); product->Show(); delete product; delete factory; return 0;}
0 0
- 设计模式--工厂方法
- 工厂方法设计模式
- 设计模式-工厂方法
- 【设计模式】【工厂方法】
- 设计模式 - 工厂方法
- 工厂方法设计模式
- 工厂方法设计模式
- 【设计模式】工厂方法
- 设计模式--工厂方法
- 设计模式---工厂方法
- 设计模式-工厂方法
- 工厂方法设计模式
- 工厂方法设计模式
- 设计模式-工厂方法
- 设计模式 工厂方法
- 工厂方法设计模式
- 工厂方法设计模式
- 设计模式 - 工厂方法
- 切勿混淆串行队列、并行队列和同步、异步
- 欢迎使用CSDN-markdown编辑器
- 选择排序
- 甲骨文oracle的ocp和ocm认证难不难考?
- flash builder 4.6 mac 版破解方法
- 设计模式-工厂方法模式
- Java中对象的深复制(深克隆)和浅复制(浅克隆)介绍
- Spark安装和集群部署
- String58
- windows下内存泄露分析工具
- 推荐maven比较快的国内mirror仓库
- Android6.0源码解读之View点击事件分发机制
- GCC编译器使用
- RxJava(RxAndroid)基本使用入门