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

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

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

实在搞不懂与工厂相关的设计模式到底分哪两种?
...全文
455 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
根据输入参数产生某个父类或者接口的具体类型的实例化结果。

把小学课本上的问题变个描述方式去问大学教授,往往难住教授。大多数模式其实就是这样——其实没有什么。

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧