Skip to content

Latest commit

 

History

History

0101-工厂方法

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

工厂方法模式 其实是一种思想。通常情况是配合一些策略模式、适配器模式、模板模式 提供一个工厂方法,来避免代码中大量的 if else。

工厂方法的具体实现 也可以有多种方式。

方法1 通过放在父类中的【一个map】来装不同的校验器

eg: 不同的渠道开补款,校验的规则不一样 [自营开补款、淘系开补款、自营&淘系开补款]

方法2 通过【一个map】来路由到接口的不同的实现类

eg: 审核接口,有3个实现:审核通过、特批通过、审核驳回

方法3 与【策略模式】配合。在实现类中加个注解,然后在工厂中,遍历所有实现类的注解,塞进 map

eg: 抽奖策略模式:总体概率、单项概率

方法4 与【模板方法】+【策略模式】配合。(抽象类中是模板方法),然后在工厂中,遍历所有继承了抽象类的方法,塞进 map

eg: 更新库存接口。 模板方法为:

  1. 更新 sku_stock 表
  2. 更新 sku_isolate_stock 表
  3. 更新 sku_group_stock 表

但是不同的 创建订单、支付订单、取消订单 对应的实际操作是不同的。

方法5 与【状态模式】配合。