设计模式中 最基本的工厂模式感觉就是根据输入的类型决定选择何种类与进行何种操作。跟面向过程中输入1则执行func1();输入2则执行func2()基本一致的想法#include using namespace std;enum eShoeType{ leather = 0,rubber};class...
分类:
其他好文 时间:
2014-07-28 15:02:23
阅读次数:
188
一、问题的提出现假设需要生产两种产品或创建两个对象,我们一般的方法如下代码所示://protoProduct.hclass ProductA{public: virtual void operation();};class ProductB{public: virtual void op...
分类:
其他好文 时间:
2014-07-24 00:50:48
阅读次数:
276
一、概述 与简单工厂模式相比,工厂模式使一个类的实例化延迟到了其子类处理,改善了简单工厂对修改不能关闭的问题。 这里我们要关注的是代码的变化:与简单工厂模式相比,与产品类相关的类保持不变,但与工厂类相关的类会有变化。 所以这里有关产品的类的实现完全照搬了简单工厂的代码。我们只要关注工厂类的变化,就可...
分类:
其他好文 时间:
2014-06-27 00:18:36
阅读次数:
313
工厂模式分为三大类
简单工厂(SimpleFactory)
工厂方法模式(Factory Method)
抽象工厂模式(Abstract Factory)
动态工厂(Dynamic Factory,属于优化版简单工厂)...
分类:
其他好文 时间:
2014-06-18 07:54:35
阅读次数:
134
该形式的工厂模式是我项目中用到的方法,属于很成熟的模版,读者可以直接拿来在自己项目中使用。个人感觉这种方法真正做到了“开放封闭”的原则,最大好处是用户产品类的设计完全不依赖于该模式的实现,比如提供必须的相关函数等。如果不理解工厂模式的话,请参考网上其它文章,本实现在理解上有一点小小的难度。好东西,大家慢慢享用,话不多说,先放代码!
首先是产品基类,它相当于一个接口,产品需要有什么动作就写在这里吧...
分类:
其他好文 时间:
2014-06-08 14:56:18
阅读次数:
202
在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如何应对这种变化?提供一种封装机制来隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变?这就是要说的Factory
Method...
分类:
其他好文 时间:
2014-05-26 21:10:26
阅读次数:
269
本章分三部分:简单工厂,工厂方法模式,抽象工厂模式。
一、简单工厂:简单工厂其实不是一个设计模式,只是一种编程习惯。示例如下:
PizzaStore.java
package headfirst.factory.pizzas;
public class PizzaStore {
SimplePizzaFactory factory;
public PizzaStore(...
分类:
其他好文 时间:
2014-05-26 04:51:42
阅读次数:
233
工厂模式(Factory)允许你在代码执行时实例化对象。它之所以被称为工厂模式是因为它负责“生产”对象。工厂方法的参数是
你要生成的对象对应的类名称。①抽象基类:类中定义抽象一些方法,用以在子类中实现②继承自抽象基类的子类:实现基类中的抽象方法③工厂类:用以实例化对象eg:简单工厂模式的初步实现
g...
分类:
Web程序 时间:
2014-05-24 09:26:06
阅读次数:
344
工厂模式主要是用来生成具有相同接口的类
工厂模式主要包括:
1、简单工厂
2、工厂方法
3、抽象工厂
我们首先来学习一下简单工厂的原理:
学习背景:
我需要这样一个智能程序,我对它讲话,它能够为我制造一台能够满足我需求的电器
如:我要看电视,它给我制造一台电视,我要洗衣服,它给我制造一台洗衣机...
首先我使用面向过程的方法来实现这个程序
public sta...
分类:
其他好文 时间:
2014-05-18 08:12:18
阅读次数:
278