JAVA设计模式中,抽象工厂与工厂方法的区别是什么,两者有什么不同吗?

 我来答
左手编码
2012-05-31 · TA获得超过756个赞
知道小有建树答主
回答量:421
采纳率:0%
帮助的人:352万
展开全部
抽象工厂的方法经常以工厂方法的方式实现,两者很容易混淆。他们的工作都是负责创建对象。不同的是工厂方法用的方法是继承过来的,而抽象工厂是通过对象组合。其实整个工厂方法模式,只不过就是通过子类来创建对象。只需知道超类型就可以了,具体的类型由子类负责。在这一点上,抽象工厂表示毫无压力,但是做法不同。抽象工厂提供一个用来创建一个产品家族的抽象类型,这个类型的子类定义了产品被产生的方法。要想使用这个工厂,必须先实例化它(产品家族的抽象类型,通过组合而来)。它的优点是可以把一群相关的产品集合起来,缺点是如果有新产品加入需要修改接口代码,这会涉及到所有子类接口的更改,是一个很繁琐的工作。而工厂方法有点相反,它只是创建一个产品,不需要很大的接口,一个方法就可以了。如果你目前还不知道将来需要实例化哪些类时,也可以使用工厂方法,只要继承它,实现工厂方法就可以了。
举一个例子:如果你有一个超市,只买一种物品,建议用工厂方法。如果有很多物品,就使用抽象工厂。当然,各有各的特点,最终都是学以致用,解决实际问题。很多问题都是结合各种办法解决的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-05-31
展开全部
楼上答对了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式