永发信息网

工厂方法模式与抽象工厂模式的区别

答案:2  悬赏:10  手机版
解决时间 2021-04-28 08:16
工厂方法模式与抽象工厂模式的区别
最佳答案
工厂方法模式:
一个抽象产品类,可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类只能创建一个具体产品类的实例。

抽象工厂模式:
多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类可以创建多个具体产品类的实例。

区别:
工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。
全部回答
对于java来说,你能见到的大部分抽象工厂模式都是这样的:
---它的里面是一堆工厂方法,每个工厂方法返回某种类型的对象。
比如说工厂可以生产鼠标和键盘。那么抽象工厂的实现类(它的某个具体子类)的对象都可以生产鼠标和键盘,但可能工厂A生产的是罗技的键盘和鼠标,工厂B是微软的。
这样A和B就是工厂,对应于抽象工厂;
每个工厂生产的鼠标和键盘就是产品,对应于工厂方法;
用了工厂方法模式,你替换生成键盘的工厂方法,就可以把键盘从罗技换到微软。但是用了抽象工厂模式,你只要换家工厂,就可以同时替换鼠标和键盘一套。如果你要的产品有几十个,当然用抽象工厂模式一次替换全部最方便(这个工厂会替你用相应的工厂方法)
所以说抽象工厂就像工厂,而工厂方法则像是工厂的一种产品生产线
----------------
我看不到代码,也不知道你的方法返回什么。但相信是,因为DAO模式的确用了工厂方法,而你的类名又叫Factory,这是工厂方法习惯用的名字,create方法很可能就是用来返回新对象的。工厂方法是最常用也是最简单的一个设计模式。只要你的方法像new一样 返回新一个对象就是了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中心在原点,一个焦点(0,2)的椭圆被直线l:y
何姐便民平价超市我想知道这个在什么地方
蚯蚓的外行特征
李弘基的具体资料
谁有CS龙珠2.2的无限气的下载网址??
一道中考物理题
凡事只要于心无愧,就不要计较太多是什么意思
5230手机手机主题怎么安装
漢古竹酢足贴真的那么有效吗
解酒最方便的方法?
有什么简单好吃的菜吗?
海水为什么是蓝色
联想G450的散热好不好?用过的朋友知会下啊
为什么地下城与勇士的更新好慢?
外墙保温怎么做,内墙保温的注意事项
推荐资讯
请问一起又看流星雨中慕容云海为雨楚写的那首
QQ三国没用过但要帅气的名字,最好是繁体,有
长沙晚报宿舍在哪里啊,我有事要去这个地方
谁知道法师3B最好搭配
dota2 vg ddc去哪儿了
2015年中考,我总分290多,不加体育实验什么
问道90女水法怎么加点?急用,高手说下!!
E71为什么安装不了QQ音乐
请问一下2是质数吗
诺基亚哪款智能手机最适合中学生用?
谁知道1986年12月16日出生的是哪个星座啊谢谢
今天坐出租车时被人叫了两声宝贝儿,是不是吃
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?