c++ 设计模式之 工厂模式
来源:互联网 发布:在国外淘宝能用吗 编辑:程序博客网 时间:2024/06/16 22:58
概念
使用工厂的客户根本不知道具体的类.工厂的使用者创建一个基类的对象.但由子类决定实例化哪个.这就允许我们服从子类的实例化,但是调用都不知道哪个对象被创建.
类图
![](http://my.csdn.net/uploads/201207/23/1343036844_2492.png)
图片来自源: wiki
代码示例
#include <iostream>class Button {public:virtual void paint() = 0;};class OSXButton: public Button {public:void paint() {std::cout << "OSX button \n";}};class WindowsButton: public Button {public:void paint() {std::cout << "Windows button \n";}};class GUIFactory {public:virtual Button *createButton(char *) = 0;};class Factory: public GUIFactory {public:Button *createButton(char *type) {if(strcmp(type,"Windows") == 0) {return new WindowsButton;}else if(strcmp(type,"OSX") == 0) {return new OSXButton;}}};int main(){GUIFactory* guiFactory;Button *btn;guiFactory = new Factory;btn = guiFactory->createButton("OSX");btn -> paint();btn = guiFactory->createButton("Windows");btn -> paint();return 0;}
- 设计模式之工厂模式(c++)
- C#--设计模式之简单工厂模式
- C#--设计模式之工厂方法模式
- 设计模式之简单工厂,工厂方法模式(c++)
- 设计模式----工厂模式(c++)
- 【设计模式C++】工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之---工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之-工厂模式
- java语言对象访问的背后
- mFC下文件的递归删除和拷贝
- iOS静态库中使用中使用Categories
- C 语言计算程序运行的时间
- 【学习点滴-memcached】memcached与分布式一致hash
- c++ 设计模式之 工厂模式
- MIME类型详解
- 员工离职时有如下现象吗?
- android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)
- C++中的_itoa_s
- Python建立SSH连接的方法
- web写文件的注意事项
- allwinner A10平台下的ar6302驱动移植
- Matlab常用工具箱介绍