java抽象工厂模式和工厂方法模式有区别吗

java抽象工厂模式和工厂方法模式有区别吗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

创新互联是一家集网站建设,金平企业网站建设,金平品牌网站建设,网站定制,金平网站建设报价,网络营销,网络优化,金平网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

一、简单工厂模式

特点:

1、它是一个具体的类,非接口 抽象类。有一个重要的create()方法,利用if或者 switch创建产品并返回。

2、create()方法通常是静态的,所以也称之为静态工厂。

缺点:

1、扩展性差(我想增加一种面条,除了新增一个面条产品类,还需要修改工厂类方法)。

2、不同的产品需要不同额外参数的时候 不支持。

二、工厂方法模式

模式描述:

提供一个用于创建对象的接口(工厂接口),让其实现类(工厂实现类)决定实例化哪一个类(产品类),并且由该实现类创建对应类的实例。

模式要素:

提供一个产品类的接口。产品类均要实现这个接口(也可以是abstract类,即抽象产品)。

提供一个工厂类的接口。工厂类均要实现这个接口(即抽象工厂)。

由工厂实现类创建产品类的实例。工厂实现类应有一个方法,用来实例化产品类。

三、抽象工厂模式

模式描述:

为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。

四、区别

抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。

它与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。

在编程中,通常一个产品结构,表现为一个接口或者抽象类,也就是说,工厂方法模式提供的所有产品都是衍生自同一个接口或抽象类,而抽象工厂模式所提供的产品则是衍生自不同的接口或抽象类。

在抽象工厂模式中,有一个产品族的概念:所谓的产品族,是指位于不同产品等级结构中功能相关联的产品组成的家族。抽象工厂模式所提供的一系列产品就组成一个产品族;而工厂方法提供的一系列产品称为一个等级结构。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


分享题目:java抽象工厂模式和工厂方法模式有区别吗
地址分享:http://scyanting.com/article/picded.html