Abstract Factory


参考:http://www.dofactory.com/Patterns/Patterns.aspx
Abstract Factory: http://www.dofactory.com/Patterns/PatternAbstract.aspx

理解:

Abstract Factory 应该是模式中比较常用的一个
基本原理用一句话来概括就是

一个定义好的类,在使用的前一刻才调用其具体实现来完成操作..

通常的用法
项目不知道用哪一种数据库

于是我定义了一个抽像类 类(A)
并偷偷地将 类(A) 中的方法 针对每种数据库分别全部实现

于是在项目中需要使用到 类(A) 的时候 全部用调用 类(A)
而不指定是哪种数据库

但当最后不得不把数据输出的时候就要指定 类(A) 的那些方法到底是调用哪种数据库的.
具体一般用反射(具体我也大懂,看看例子就明白了)来实现..

---------------------------------------------------------------------------------

用通俗的说法就是

我答应送给你一辆车,但我不告诉你是什么车
于是,在送给你的时候,就可以送你一辆玩具车或者是真车...

-----------------------------------------------------------------------

好处:

具体就是方法的推迟实现

以便项目需求改变时(例子里就是用户想换数据库时)
只需要稍稍改就可以了.而不用再重新开发..

-----------------------------------------------------------------------------

也可以用接口来实现此 模式.
--------------------------------------------------------

doodas的支持多种数据库就是照着这种模式实现的

http://www.mygenerationsoftware.com/portal/dOOdads/Overview/tabid/63/Default.aspx

参考页面的那个例子太OO了,代码看起来是好看
就是难理解//


//add by day
//1/25/2006
//源:http://www.lvjiyong.com/books/DesignPatterns/12.html
//适用环境

一个系统要独立于它的产品的创建、组合和表示时。
一个系统要由多个产品系列中的一个来配置时。
当你要强调一系列相关的产品对象的设计以便进行联合使用时。
当你提供一个产品类库,而只想显示它们的接口而不是实现时。



//add by day
//2/2/2006
//本以为可以写点东西,看来设计模式还是太精深了,以后再研究吧..奶奶的



原文地址:https://www.cnblogs.com/day/p/321602.html