1.1 模式定义简单工厂模式:将创建不同对象的代码封装到具体产品类中;将创建这些具体产品类的公共代码封装到到抽象产品类中;定义一个工厂类,该类的静态方法可以根据不同参数创建不同的具体产品实例。模式要点:需要什么类型的产品,只需传入一个正确的参数,就可以获得一个对应的实例。1.2 模式结构图1.3 模...
分类:
其他好文 时间:
2015-05-23 19:59:31
阅读次数:
122
上回《大话设计模式C++版——简单工厂模式》中指出了简单工厂模式的缺陷,即违背了开发—封闭原则,其主要原因是由于switch的判断结构的使用,使修改或添加新的对象时需要改动简单工厂类的代码,如何改造switch结构,表驱动法就可以粉墨登场了。
表驱动法的介绍见《数据驱动编程之表驱动法》。
1、面向接口编程,先改造抽象接口类IOperation
class IOperation
{
p...
分类:
编程语言 时间:
2015-05-23 14:21:00
阅读次数:
430
简单工厂模式应该是所有设计模式中最简单,也最基础的一种模式,以下是一个简单的采用工厂模式写一个加减法的计算器。
1、抽象接口类——依赖倒转原则(高层和底层都要依赖于抽象,针对接口编程)
class IOperation
{
public:
IOperation() : m_nNuml(0), m_nNumr(0) {}
virtual ~IOperation() {}
vir...
分类:
编程语言 时间:
2015-05-23 11:34:34
阅读次数:
154
举两个例子以快速明白Java中的简单工厂模式:女娲抟土造人话说:“天地开辟,未有人民,女娲抟土为人。”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面。女娲造人,这就是简单工厂模式的应用。 首先,在这个造人的思想里面,有几个重要的角色:女娲本身、抽象的人的概念和女娲所....
分类:
编程语言 时间:
2015-05-22 18:39:59
阅读次数:
169
工厂模式用来实例化对象并且实现实现与调用分离,用工厂模式来替代new。 来看看这位老兄总结的吧,不想废话了。http://www.cnblogs.com/poissonnotes/archive/2010/12/01/1893871.html 工厂模式有三种: 1. 简单工厂模式 2. 工厂方法模....
分类:
其他好文 时间:
2015-05-21 01:12:05
阅读次数:
165
Deferred对象是由$.Deferred构造的,$.Deferred被实现为简单工厂模式。它用来解决JS中的异步编程,它遵循Common Promise/A规范。实现此规范的还有when.js和dojo。$.Deferred作为新特性首次出现在版本1.5中,这个版本利用Deferred又完全重写...
分类:
Web程序 时间:
2015-05-20 21:56:37
阅读次数:
163
1. 简单工厂又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但...
分类:
编程语言 时间:
2015-05-17 23:09:15
阅读次数:
118
工厂模式提到的最多, 用途也最广. 简单说就是: 定义一个用户创建对象的接口.简单工厂模式:①抽象基类:类中定义抽象一些方法,用以在子类中实现②继承自抽象基类的子类:实现基类中的抽象方法③工厂类:用以实例化对象只要是可以根据不同的参数生成不同的类实例,那么就符合工厂模式的设计思想。//这样子做很方便...
分类:
Web程序 时间:
2015-05-15 19:52:50
阅读次数:
120
第四个模式:工厂模式 4.1写在前面:定义简单工厂模式 简单工厂不是一个设计模式,反而比较像是一种编程习惯。 看看如何根据订单生产这些披萨的: 1.先看看Ethan的订单:我们首先需要一个纽约披萨店: PizzaStore nypizzastore = new NYPizzaStore(); 2.现...
分类:
其他好文 时间:
2015-05-14 17:53:10
阅读次数:
130
在阎宏博士的《JAVA与模式》一书中开头是这样描述简单工厂模式的:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。那么简单工厂模式是在什么场景下使用呢,下面就以本人的理解举例说明: 就拿登录....
分类:
编程语言 时间:
2015-05-13 19:43:58
阅读次数:
177