• 主页
  • Java SE
  • J2ME
  • Web开发
  • Java EE
  • Eclipse

概念辨析:工厂模式 工厂方法模式 简单工厂模式 抽象工厂

TrueZq 2004-11-11 04:54:44
工厂模式 工厂方法模式 简单工厂模式 抽象工厂

工厂模式中有: 工厂方法(Factory Method) 抽象工厂(Abstract Factory).?

实在搞不懂与工厂相关的设计模式到底分哪两种?
...全文
377 点赞 收藏 16
写回复
16 条回复
Hannibals 2004年11月18日
麻仁棵
回复 点赞
carlchen_enjoym 2004年11月18日
看看jive :)
回复 点赞
马前小卒 2004年11月18日
学习
回复 点赞
AllanJD 2004年11月17日
Markup
回复 点赞
funcreal 2004年11月15日
昨天又看了一下书,再具体说一下。

简单工厂:用来生产同一等级结构中的任意产品。(对于增加新的产品,无能为力)
工厂模式:用来生产同一等级结构中的固定产品。(支持增加任意产品)
抽象工厂:用来生产不同产品族的全部产品。(对于增加新的产品,无能为力;支持增加产品族)

同一等级结构:中国动物->中国猫-〉
-〉中国狗-〉藏敖
-〉京叭 以上动物属于同一等级结构
同一产品族:中国狗,日本狗,美国狗则属于同一产品族。

以上三种工厂方法在等级结构和产品族这两个方向上的支持程度不同。所以要根据情况考虑应该使用哪种方法。
大家继续。。。
回复 点赞
funcreal 2004年11月14日
我来总结一下
简单工厂和工厂方法用来生产单个产品。
抽象工厂用来生产产品族。
建议大家看一下《java与模式》里面说得非常清楚。
回复 点赞
TrueZq 2004年11月14日
有没有谁总结一下啊
回复 点赞
jeffyan77 2004年11月12日
工厂模式可以分成三种:简单工厂、工厂方法、抽象工厂。有人将它们分成两种:工厂方法、抽象工厂。

所有的设计模式都可以分成两种:对象的和类的。
回复 点赞
sylmoon 2004年11月12日
所有的设计模式都可以分成两种:对象的和类的。
回复 点赞
lsqlister001 2004年11月12日
学习
回复 点赞
merlinran 2004年11月11日
可以造出东西来的就是工厂。后面三种都是。
工厂方法着重点在方法二字,意即对象本身有其它用途,只是有一个方法,可以造出东西来而已。比如:
struct Object {
static Object* Create();
// other methodes...
}
Object::Create就是一个工厂方法。

简单工厂模式就是最简单的了。对象存在的价值就是为了造出另一些对象来。比如:
struct HumanCreator {
Man CreateMan();
Woman CreateWoman();
};
抽象工厂中,工厂有多个,都造类似的东西,只是细节上有差别而已。冠以抽象二字,是因为这些工厂都是从一个基类中派生出来的。
struct AbstractHumanCreator {
virtual Man CreateMan() = 0;
virtual Woman CreateWoman() = 0;
};
struct NuWa/*女娲*/ : public AbstractHumanCreator {
ChineseMan CreateMan();
ChineseWoman CreateWoman();
};
struct God : public AbstractHumanCreator {
WhiteMan CreateMan();
WhiteWoman CreateWoman();
};
不好意思,习惯了用C++,Java一下子不会写了。用Java的自己翻译一下吧。
回复 点赞
launch401 2004年11月11日
楼上说反了好像。
工厂方法可以说成template method在创建对象上面的应用,目的是封装具体创建哪个对象;
而抽象工厂是为了创建一“系列”的产品,抽象工厂通常用工厂方法来实现从而封装了具体创建哪个产品系列。
回复 点赞
vongood 2004年11月11日
分两种,类模式和对象模式。
工厂方法模式是类模式, 抽象工厂(Abstract Factory)是对象模式。
回复 点赞
SStallMan 2004年11月11日
啥也不懂我过来看看
回复 点赞
skypeople 2004年11月11日
模式的精华,在于从实践中抽象总结,而总结的基础在于融会贯通,如果再把模式还原成死条条,是模式的悲哀
回复 点赞
w_rose 2004年11月11日
根据输入参数产生某个父类或者接口的具体类型的实例化结果。

把小学课本上的问题变个描述方式去问大学教授,往往难住教授。大多数模式其实就是这样——其实没有什么。
回复 点赞
发动态
发帖子
Java
创建于2007-09-28

1.8w+

社区成员

8.1w+

社区内容

Java相关技术讨论
社区公告
暂无公告