跟着实例学习设计模式(5)-工厂方法 、抽象工厂的区别

工厂方法和抽象工厂都属于工厂模式,那么它们到底有什么区别呢?让我们来比较一下。

首先我们从工厂接口的角度来分析一下。

工厂方法:

                工厂方法是创建一个产品的不同功能的创建接口,并且同分类不同功能的产品返回的产出物还得是相同的。例如:汽车的发动机的制造就可以使用工厂方法,发动机分为直喷式发动机、涡轮增压式发动机。

抽象工厂:

                抽象工厂是创建具有级联关系的一系列产品的,例如汽车,汽车由发动机、油箱、轮胎等组成,那么个这样一个产品是由一些相关联的产品组成的并且又可以分系列(卡车、小汽车、跑车)的产品就可以使用抽象工厂来实现,每个工厂是创建一个产品的一些相依赖的产品(创建发动机、创建油箱)。

其次我们从创建的产品的角度来分析:

工厂方法创建出来的产品是一层的,没有组成关系。例如:发动机、或是加法、减法、乘法等。

抽象工厂创建的产品是多层的,并且层级之间可能存在依赖关系。例如:汽车由卡车、小汽车、跑车等抽象而来,汽车由发动机、油箱、轮胎等组成,再比如:访问不同数据库,数据库有mysql、sql server之分 ,mysql中有用户表、部门表。

以上的分析可能还很浅显,我是希望大家可以自己写一下这两种模式,从中可能会自己体会出来他们的区别。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值