温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-06-26 17:38:17 来源:亿速云 阅读:198 作者:Leah 栏目:编程语言

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

一、简单工厂模式

特点:

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

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

缺点:

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

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

二、工厂方法模式

模式描述:

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

式要素:

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

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

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

三、抽象工厂模式

模式描述:

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

四、区别

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

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

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

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

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI