首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

c++ 设计方式之 工厂模式

2012-08-15 
c++ 设计模式之 工厂模式概念使用工厂的客户根本不知道具体的类.工厂的使用者创建一个基类的对象.但由子类

c++ 设计模式之 工厂模式
概念

使用工厂的客户根本不知道具体的类.工厂的使用者创建一个基类的对象.但由子类决定实例化哪个.这就允许我们服从子类的实例化,但是调用都不知道哪个对象被创建.

类图c++ 设计方式之 工厂模式

图片来自源: 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;}



热点排行