来自: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. ios 博客集合

    ryantang03     http://blog.csdn.net/ryantang03/article/category/1073221 kmyhy   http://blog.csdn.net ...

  2. SAP-ABAP系列 第一篇SAP简介

    第一篇 SAP简介 SAP全名为System Application and Products in Data Processing.SAP目前是全世界排名第一的RP软件,号称“全球最大的企业管理解决 ...

  3. wpf Style也继承(包含内部定义事件)

    如何在既定皮肤下为某个style添加内容是我今天碰的问题,皮肤往往是对全局control进行设置的,当然这就无法满足某个个性十足的“另类”了,比如当使用DataGridCheckBoxColumn时, ...

  4. Navicat Premium创建MySQL存储过程

    1.使用Navicat Premium打开创建函数向导,操作:连接名——数据库——函数——新建函数 2.选择过程——输入存储过程参数——完成(这一步可以不填写参数,编写存储过程代码的时候设置参数) 3 ...

  5. 如何解决Apache无法启动的问题

    今天重装xampp后,一直无法启动Apache,提示以下错误: 22:36:54 [Apache] Attempting to start Apache app...22:36:54 [Apache] ...

  6. some base knowledge

    har类型的长度被定义为一个8位字节,这很简单. short类型的长度至少为两字节.在有些计算机上,对于有些编译程序,short类型的长度可能为4字节,或者更长. int类型是一个整数的“自然”大小, ...

  7. Hadoop合并小文件的几种方法

    1.Hadoop HAR 将众多小文件打包成一个大文件进行存储,并且打包后原来的文件仍然可以通过Map-Reduce进行操作,打包后的文件由索引和存储两大部分组成: 缺点: 一旦创建就不能修改,也不支 ...

  8. Android Weekly Notes Issue #246

    Android Weekly Issue #246 February 26th, 2017 Android Weekly Issue #246 本期内容包括: RecyclerView上的Shared ...

  9. Xshell和secureCRT

    作为一名测试人员,xshell和secureCRT用它们来查看日志.排查定位问题,用的时间长了总感觉只是摸着点皮毛,连这两个工具的名字以及它的工作原理都不清楚,就查了点资料来多了解下,虽然可能在日常工 ...

  10. Linux 查看服务状态(服务与进程)

    原文地址:http://blog.csdn.net/weixin_37979944/article/details/79029188 指令(instruction): 计算机实际上可以做的事情实质上非 ...