工厂方法模式与抽象工厂模式的区别
我上网找了很多相关的文章,但都没有满意的答案希望哪位真正理解的高手来详细的说一说他们之间的区别,帮帮小弟,多谢我想请问一下,下面的图是工厂方法模式吗?图画的不好请见谅--...
我上网找了很多相关的文章,但都没有满意的答案
希望哪位真正理解的高手来详细的说一说他们之间的区别,帮帮小弟,多谢
我想请问一下,下面的图是工厂方法模式吗?
图画的不好请见谅
----------------DAOFactory
---------------------|
---------------RdbDAOFactory
------------------|------------|
--------------creates------creates
------------------|------------|
--------------RdbDAOa-------RdbDAOb
------------------|------------|
------------<<interface>>--<<interface>>
----------------DAOa----------DAOb
///////////////////////////////////////
我就是想知道工厂方法不是只能生产一个抽象产品吗?为什么这里有DAOa和DAOb两个抽象产品也叫做工厂方法设计模式呢? 展开
希望哪位真正理解的高手来详细的说一说他们之间的区别,帮帮小弟,多谢
我想请问一下,下面的图是工厂方法模式吗?
图画的不好请见谅
----------------DAOFactory
---------------------|
---------------RdbDAOFactory
------------------|------------|
--------------creates------creates
------------------|------------|
--------------RdbDAOa-------RdbDAOb
------------------|------------|
------------<<interface>>--<<interface>>
----------------DAOa----------DAOb
///////////////////////////////////////
我就是想知道工厂方法不是只能生产一个抽象产品吗?为什么这里有DAOa和DAOb两个抽象产品也叫做工厂方法设计模式呢? 展开
开勒储能
2024-04-15 广告
2024-04-15 广告
开勒新能源科技(上海)有限公司的储能解决方案,通过高效能源存储与智能能源管理,为各类客户提供可靠的盈利支持。我们的储能系统可实现能源的削峰填谷,优化电费账单,同时还能满足客户在电力峰值期和低谷期的不同需求。此外,我们的系统能与可再生能源系统...
点击进入详情页
本回答由开勒储能提供
展开全部
对于java来说,你能见到的大部分抽象工厂模式都是这样的:
---它的里面是一堆工厂方法,每个工厂方法返回某种类型的对象。
比如说工厂可以生产鼠标和键盘。那么抽象工厂的实现类(它的某个具体子类)的对象都可以生产鼠标和键盘,但可能工厂A生产的是罗技的键盘和鼠标,工厂B是微软的。
这样A和B就是工厂,对应于抽象工厂;
每个工厂生产的鼠标和键盘就是产品,对应于工厂方法;
用了工厂方法模式,你替换生成键盘的工厂方法,就可以把键盘从罗技换到微软。但是用了抽象工厂模式,你只要换家工厂,就可以同时替换鼠标和键盘一套。如果你要的产品有几十个,当然用抽象工厂模式一次替换全部最方便(这个工厂会替你用相应的工厂方法)
所以说抽象工厂就像工厂,而工厂方法则像是工厂的一种产品生产线
----------------
我看不到代码,也不知道你的方法返回什么。但相信是,因为DAO模式的确用了工厂方法,而你的类名又叫Factory,这是工厂方法习惯用的名字,create方法很可能就是用来返回新对象的。工厂方法是最常用也是最简单的一个设计模式。只要你的方法像new一样 返回新一个对象就是了
---它的里面是一堆工厂方法,每个工厂方法返回某种类型的对象。
比如说工厂可以生产鼠标和键盘。那么抽象工厂的实现类(它的某个具体子类)的对象都可以生产鼠标和键盘,但可能工厂A生产的是罗技的键盘和鼠标,工厂B是微软的。
这样A和B就是工厂,对应于抽象工厂;
每个工厂生产的鼠标和键盘就是产品,对应于工厂方法;
用了工厂方法模式,你替换生成键盘的工厂方法,就可以把键盘从罗技换到微软。但是用了抽象工厂模式,你只要换家工厂,就可以同时替换鼠标和键盘一套。如果你要的产品有几十个,当然用抽象工厂模式一次替换全部最方便(这个工厂会替你用相应的工厂方法)
所以说抽象工厂就像工厂,而工厂方法则像是工厂的一种产品生产线
----------------
我看不到代码,也不知道你的方法返回什么。但相信是,因为DAO模式的确用了工厂方法,而你的类名又叫Factory,这是工厂方法习惯用的名字,create方法很可能就是用来返回新对象的。工厂方法是最常用也是最简单的一个设计模式。只要你的方法像new一样 返回新一个对象就是了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
而抽象工厂模式有多个:一个抽象产品类,可以派生出多个具体工厂类。
每个具体工厂类可以创建多个具体产品类的实例。
一个抽象工厂类:工厂方法模式只有一个抽象产品类,可以派生出多个具体产品类。抽象工厂模式:多个抽象产品类。
一个抽象工厂类,每个抽象产品类可以派生出多个具体产品类。
区别。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例。
每个具体工厂类只能创建一个具体产品类的实例工厂方法模式,而抽象工厂模式可以创建多个,可以派生出多个具体工厂类
每个具体工厂类可以创建多个具体产品类的实例。
一个抽象工厂类:工厂方法模式只有一个抽象产品类,可以派生出多个具体产品类。抽象工厂模式:多个抽象产品类。
一个抽象工厂类,每个抽象产品类可以派生出多个具体产品类。
区别。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例。
每个具体工厂类只能创建一个具体产品类的实例工厂方法模式,而抽象工厂模式可以创建多个,可以派生出多个具体工厂类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询