二十三种设计模式——工厂模式

一、工厂模式作用

实现了创建者和调用者的分离

二、核心本质

  1. 实例化对象不使用new,用工厂方法代替。
  2. 将选择实现类,创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。

三、工厂模式的分类

工厂模式有三种模式:

1、简单工厂模式

用来生产同一等级结构中的任意产品(对于增加新的产品,需要修改已有代码)

2、工厂方法模式

用来生产同一等级结构中的固定产品(支持增加任意产品)

3、抽象工厂模式

围绕一个超级工厂创建其他工厂,该超级工厂又称为其他工厂的工厂

1、简单工厂(又称为静态工厂):以鞋工厂为列:首先有个接口Shoes,然后再有各个牌子比如:Nike、Adidas、AJ等都是鞋,所以实现了Shoes接口,重写了Shoes中的name方法,然后再有个shoesFactory类(工厂类),其一:可以通过静态方法getShoes(String ShoesName)来获取具体有名牌的鞋的对象其二:可以通过静态方法例如:public static getNike() {return new Nike();}
请添加图片描述

来获取具体有名牌鞋的对象简单工厂的缺点:如果你想增加一个新的产品,如果你不修改代码,做不到,这违背了OOP七大原则之开闭原则大多数情况下手简单工厂模式请添加图片描述

2、工厂方法模式:工厂方法模式解决了简单工厂模式需要破坏开闭原则的弊端,但是代码量大大增加。还是以鞋工厂为列:首先有个接口Shoes,然后再有各个牌子比如:Nike、Adidas、AJ等都是鞋,所以实现了Shoes接口,重写了Shoes中的name方法,然后再有个鞋工厂接口ShoesFactory,里面有一个抽象方法public Shoes getShoes(),然后各个牌子有自己的工厂NikeFactory、AdidasFactory去实现ShoesFactory接口,实现其getShoes() {new Nike();}方法,然后就可以了,比如需要增加一个牌子,需要让自己牌子去实现这个shoes接口,然后创建这个牌子的工厂去实现抽象工厂,这几步没有修改源代码。注意:要new 工厂()

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

请添加图片描述

学习以下对比:对比:
结构复杂度: simple优先
代码复杂度: simple优先
编程复杂度: simple优先
管理上的复杂度: simple优先

根据设计原则:工厂方法模式!
根据实际业务:简单工厂模式!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值