工厂模式总结

本文深入探讨了三种工厂模式:简单工厂、工厂方法和抽象工厂。简单工厂模式集中创建逻辑,可能导致复杂性和高内聚原则的违反。工厂方法模式通过引入工厂接口和具体工厂,将创建逻辑分散,扩展更灵活。抽象工厂模式关注产品族的创建,如PC组装,涉及相互依赖的产品组件。用户只需选择具体工厂,工厂负责整个产品族的创建。
摘要由CSDN通过智能技术生成

工厂模式主要有如下三种:

1.简单工厂

2.工厂方法模式

3.抽象工厂

简单工厂:

简单工厂有一个工厂类,负责创建产品,而产品是所有具体产品的抽象,定义了产品的接口。

糖果是产品的定义,而大白兔,荷氏薄荷,牛轧糖则是实际的产品,糖果工厂根据传入的名称参数生产不同的糖果。

该模式的缺点在于所有创建产品的逻辑全部集中在工厂类中,随着产品的拓展可能会导致工厂的创建逻辑越发复杂,并且也违反了设计模式中高内聚的原则。

工厂方法模式:

       工厂方法模式一定程度上优化了简单工厂模式的问题,通过增加工厂接口类和具体工厂类,将创建产品的逻辑一定程度分散到具体工厂类中去了,如果新增了一类产品,只需为该产品编写单独的工厂类,而不影响已经存在的工厂类。

       具体UML大致如下:

 糖果是产品的接口,而糖果工厂则是工厂的接口,不同的工厂(上好佳/荷氏)生产不同的产品(薄荷糖))

综合来说,该模式由抽象工厂,具体工厂,抽象产品,具体产品组成

对于用户来说,创建不同的具体工厂来生产不同的具体产品,而不同的具体工厂都实现了抽象工厂中申明的工厂接口
 

抽象工厂:

       抽象工厂和工厂方法模式最大的区别在于,抽象工厂是用来处理一组有相互关联作用的一组产品组合的创建,而工厂方法模式则只是处理单一一类产品的创建。

       也就是说,在抽象工厂模式中,工厂创建不同类型的产品,并且这些产品之间是会有互相依赖的关系的。

        一个比较合适的例子来源于书上介绍的关于电脑组装厂的例子,例如DELL和联想

        DELL和联想都会生产兼容PC机,而PC机则主要是有CPU,内存,硬盘,主板组成,并且主板是和CPU之间有较强的兼容关系(INTEL的CPU不能插在兼容AMD CPU的主板上)

        

        联想和IBM都是具体的电脑工厂,分别将不同品牌的CPU,硬盘,主板和内存组装成具体的PC产品,并且CPU和主板是需要进行配对使用的。

        这里为了简化,所以直接用了intel和AMD等厂商的名字,按理他们应该属于产品工厂,而具体的型号名称才是具体产品,例如I3,I5,Athlon等。

        抽象工厂模式主要用于创建一个产品族,对于PC来说,他就是一个产品族,包含了主板,CPU,内存和硬盘等产品。对于用户来说,不需要知道和创建具体的CPU,内存等具体产品,完全交给工厂来完成,创建出来的是PC这么一个从产品族,而不同的具体工厂(DELL和联想),创建的产品族中则包含不同的具体产品(AMD/INTEL的CPU, 三星/闪迪的内存等),每一个具体工厂都和一组产品绑定在一起。

引用:

抽象工厂模式 | 菜鸟教程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值