简单工厂模式、工厂方法模式和抽象工厂模式之间的异同

[注:纯属个人理解,如有错误请大家指正]

相同之处:

AbstractProduct ap = Factroy.createClass();

1.都是利用工厂类(工厂子类)来创建对应的类对abastractProduct进行实例化操作。

不同之处:

简单工厂模式仅一个工厂类负责处理创建productA和productB;

工厂方法模式的工厂类继承了工厂的接口并实现工厂接口的方式,可以有多个继承接口的子类,但是每个子类仅创建对应的product实例;

抽象工厂模式和工厂方法模式类似,不同之处是抽象工厂模式不是接口,而是abstract class。

纠正以上错误:

工厂方法创建一般只有一个方法,创建一种产品。
抽象工厂一般有多个方法,创建一系列产品。

 

目的不一样
工厂方法创建 "一种" 产品,他的着重点在于"怎么创建",也就是说如果你开发,你的大量代码很可能围绕着这种产品的构造,初始化这些细节上面。也因为如此,类似的产品之间有很多可以复用的特征,所以会和模版方法相随。

抽象工厂需要创建一些列产品,着重点在于"创建哪些"产品上,也就是说,如果你开发,你的主要任务是划分不同差异的产品线,并且尽量保持每条产品线接口一致,从而可以从同一个抽象工厂继承。

posted on 2010-09-03 16:41  Tim's Home  阅读(712)  评论(2编辑  收藏  举报