工厂模式Factory

工厂:任何可以产生对象的方法或类。 提高代码扩展性
1.简单工厂:灵活产生一个对象,工厂方法。
灵活产生一类的东西
举例:建一个工厂类,定义N个方法,每个方法返回一个实例,这些方法类型相近,例如车(火车,汽车…)

工厂可以直接返回接口↓
在这里插入图片描述
首先我们定义一个类型的接口,定义规范,定义具体交通工具类,并重写接口中的方法为自己的方法,创建工厂类,生产对象,在主方法中根据不同的工厂调用不同的go方法达到不同的效果,其本质为多态。

2.抽象工厂:产生一系列的东西,相当于产品组。其实就是两层继承实现关系
在这里插入图片描述
在这里插入图片描述

首先定义一个系列,均为抽象,被具体的类别实现,比如火锅,有清汤的,麻辣的,鸳鸯的,这个均在火锅类中定义不同的分支。而后抽象工厂返回了抽象的系列对象,每一个抽象类又有具体的现实类,现实类中有不同的分支,这就是两层多态,在主方法里先获得抽象系列的对象,然后在根据这个系列获得对应的具体分支(清汤,麻辣,鸳鸯)。
我们先通过抽象工厂获得某一个抽象类别,比如车呢,还是火锅呢,还是香烟呢的其中一种,然后在根据这个类别获取下面不同的方法。

总结:
简单工厂扩展单一产品较容易,新加工厂和商品,商品实现接口即可。
抽象商品新加系列较容易,新加产品族和工厂,产品族继承抽象产品族即可,产品族里在添加新的产品不灵活。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值