直接贴图
1.我创建了一个接口类 Pay 和 两个 Pay的实现类 Alipay 和 WxPay,一个工厂类
2.Pay 接口类,定义了几个接口方法,调用支付接口和支付回调和当前的支付类型
3.Alipay 和 WxPay分别实现Pay接口
4.工厂类创建了一个对外的方法,供其他调用支付的类使用,工厂类会判断行参type来返回对应的类对象,以下面main方法为例,main 方法需要创建PayFacotry对象,调用工厂方法,并传实参来完成相应的微信支付或支付宝支付。
5.优缺点不细说,以自己实际业务来决定是否使用,比如前期就两个支付用这种方式没问题,后期需要增加其他更多的支付方式,那都需要去用if else 判断,慢慢的可能工厂类就会变得臃肿。
6.这里顺便说个自己经常使用的做法,可以省了工厂类。大家有看到我在Pay接口里面定义了一个getPaymentType方法,alipay 和 wxpay 分别返回了自己的类型,然后在PayService直接注入一个payList,类型为Pay,框架会自动把实现了Pay的类放到payList,因此只需要循环遍历payList 调用 getPaymentType来处理后续的业务逻辑
网友评论