读书人

小弟我所理解的设计模式-工厂方法模式

发布时间: 2013-03-27 11:22:42 作者: rapoo

我所理解的设计模式--工厂方法模式

工厂方法模式不同于简单工厂模式的地方在于工厂方法模式把对象的创建过程放到里子类里。这样工厂父对象和产品父对象一样,可以是抽象类或者接口,只定义相应的规范或操作,不涉及具体的创建或实现细节。

其类图如下:

小弟我所理解的设计模式-工厂方法模式

实例代码为:

#include "stdafx.h"#include"IFactory.h"#include"IPadFactory.h"#include"IPhoneFactory.h"#include"IProduct.h"int _tmain(int argc, _TCHAR* argv[]){IFactory *fac = new IPadFactory();IProduct *pro = fac->getProduct();fac = new IPhoneFactory();pro = fac->getProduct();return 0;}


应用场景:

1. .net里面的数据库连接对象就是产生数据命令对象的工厂。每种数据库的connection对象里(继承自IDbConnection)都有对自己createCommand(定义在IDbCommand里)的实现。

2. .net里面的迭代器,IEnumerable定义了迭代器的接口,即工厂方法,每一个继承自IEnumerable的类都要实现GetEnumerator。可以参看ArrayList,String的GetEnumerator方法。他们都继承自IEnumerable。


参考资料:

1.Dot Net设计模式—工厂方法模式 http://fineboy.cnblogs.com/archive/2005/08/04/207459.html

2.工厂方法模式 http://www.cnblogs.com/cbf4life/archive/2009/12/20/1628494.html


LCL_data原创于CSDN.Net【http://blog.csdn.net/lcl_data/article/details/8712834】

读书人网 >软件开发

热点推荐