来自:http://blog.csdn.net/pangshaohua/article/details/38912555

参考写的一个工厂demo

1、定义"背景风格的抽象类"、"背景风格的抽象工厂"

 #pragma once
/*背景风格抽象类*/
class CBackgroundStyle
{
public:
virtual void DisplayStyle() = ;//纯虚函数
}; /*背景风格抽象工厂 */
class StyleFactory
{
public:
//工厂方法,具体背景风格的创建过程由子类完成
virtual CBackgroundStyle* CreateBackgroundStyleFactory() = ;
void DisplayStyle()
{//显示风格
m_pBackgroundStyle = CreateBackgroundStyleFactory();
m_pBackgroundStyle->DisplayStyle();
} public:
StyleFactory():m_pBackgroundStyle(NULL)
{ }
~StyleFactory()
{
if(NULL != m_pBackgroundStyle)
{
delete m_pBackgroundStyle;
m_pBackgroundStyle = NULL;
}
} private:
//保存创建的背景风格
CBackgroundStyle* m_pBackgroundStyle;
};

2、定义"潮流风格背景类"、"潮流风格工厂类"

//FashionStyle.h
 //FashionStyle.h
#pragma once
/*潮流风格背景类 */
class CFashionStyle: public CBackgroundStyle
{
public:
CFashionStyle(void);
~CFashionStyle(void);
public:
virtual void DisplayStyle();
}; /*潮流风格工厂*/
class FashionStyleFactory: public StyleFactory
{
virtual CBackgroundStyle* CreateBackgroundStyleFactory()
{
CBackgroundStyle* pFashionStyle = new CFashionStyle();
return pFashionStyle;
};
};
FashionStyle.cpp
 #include "StdAfx.h"
#include "BackgroundStyle.h"
#include "FashionStyle.h" CFashionStyle::CFashionStyle(void)
{
} CFashionStyle::~CFashionStyle(void)
{
} void CFashionStyle::DisplayStyle()
{
AfxMessageBox(_T("潮流风格背景"));
}

//调用方式

 void CLoadDllDemoDlg::OnBnClickedButton18()
{//工厂模式
StyleFactory* pFactory = new FashionStyleFactory();
pFactory->DisplayStyle();
delete pFactory;
pFactory = NULL;
}

上图

C++设计模式之工厂方法模式的更多相关文章

  1. C#设计模式(3)——工厂方法模式

    一.概念:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类. 二.代码实现 namespace 设计模式之工厂方法模式 { /// <summary&g ...

  2. 乐在其中设计模式(C#) - 工厂方法模式(Factory Method Pattern)

    原文:乐在其中设计模式(C#) - 工厂方法模式(Factory Method Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 工厂方法模式(Factory Method Pa ...

  3. C#设计模式(3)——工厂方法模式(转)

    C#设计模式(3)——工厂方法模式   一.引言 在简单工厂模式中讲到简单工厂模式的缺点,有一点是——简单工厂模式系统难以扩展,一旦添加新产品就不得不修改简单工厂方法,这样就会造成简单工厂的实现逻辑过 ...

  4. Java设计模式之工厂方法模式(转) 实现是抽象工厂?

    Java设计模式之工厂方法模式 责任编辑:覃里作者:Java研究组织   2009-02-25   来源:IT168网站   文本Tag: 设计模式 Java [IT168 技术文章]         ...

  5. php设计模式之工厂方法模式

    php设计模式之工厂方法模式 工厂方法模式 工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Pol ...

  6. java 23 - 1 设计模式之工厂方法模式

    转载: JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)

  7. Java设计模式 之 工厂方法模式

    1. 使用设计模式的好处:可提高代码的重复性,让代码更容易被他人理解,保证代码的可靠性. 2. 工厂模式定义:就是创建一个工厂类来创建你需要的类,工厂模式包括工厂模式和抽象工厂模式,抽象工厂模式是工厂 ...

  8. Android设计模式系列--工厂方法模式

    工厂方法模式,往往是设计模式初学者入门的模式,的确,有人称之为最为典型最具启发效果的模式.android中用到了太多的工厂类,其中有用工厂方法模式的,当然也有很多工厂并不是使用工厂方法模式的,只是工具 ...

  9. 设计模式之 - 工厂方法模式 (Factory Method design pattern)

    1. 模式意图:  定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类. 2. 别名(Virtual Constructor) 3. 结构 4. 工厂方法模式C ...

  10. 再起航,我的学习笔记之JavaScript设计模式06(工厂方法模式)

    上一次已经给大家介绍了简单工厂模式,相信大家对创建型设计模式有了初步的了解,本次我将给大家介绍的是工厂方法模式. 工厂方法模式 工厂方法模式(Factory Method):通过对产品类的抽象使其创建 ...

随机推荐

  1. 怎样高速编译mediatek\operator以下代码

    mediatek\operator以下有单独的apk.也有overlay的数据,单独的apk会配置anroid.mk,找到相应的路径直接build. 假设是overlay,则编译原来应用的路径,比如 ...

  2. DirectShow音频采集pcm,实时编码AAC,附源码

    定期送福利,今天给大家送上Windows中利用DirectShow采集microphone音频,并将采集到的pcm数据,利用FAAC库编码成AAC,进行本地存储或者网络传输. 直接贴代码,解析看注释: ...

  3. Android笔记之dp与px之间的转换以及LayoutParams

    dp与px之间的转换公式 px = dp * (dpi / 160) dp = px / (dpi / 160) 其中dpi的获取方式如下 private void getDpi() { Displa ...

  4. 5.JavaScript改变样式,验证用户输入

    ① x=document.getElementById("demo") //找到元素 x.style.color="#ff0000"; //改变样式 ② if ...

  5. appium():PageObject&PageFactory

    Appium Java client has facilities which components to Page Object design pattern and Selenium PageFa ...

  6. Linux-正则表达式学习(精)

    正则表达式30分钟入门教程 来园子之前写的一篇正则表达式教程,部分翻译自codeproject的The 30 Minute Regex Tutorial. 由于评论里有过长的URL,所以本页排版比较混 ...

  7. CSS动画硬件加速

    http://zencode.in/14.CSS%E5%8A%A8%E7%94%BB%E7%9A%84%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96.html http:// ...

  8. Gym - 100676D Sudoku 基础题

    题目链接:https://odzkskevi.qnssl.com/1110bec98ca57b5ce6aec79b210d2849?v=1490453767 题解: 方法1:用STL的set,把每个数 ...

  9. easyui tree 树形节点 formatter 渲染不起作用

    接了个需求,需要对一个树形列表进行重新渲染,在进行渲染的过程中发现树形节点的formatter 属性无法生效.经反复测试,发现在外部环境中正常,但在项目环境中始终无效.最终发现问题出在 easyui ...

  10. asterisk用 freetds记录 cdr 到mssql

    Compile, configure, and install the latest FreeTDS package: [pre]           tar -zxvf freetds-0.62.4 ...