策略设计模式_Golang 策略设计模式 介绍

简介

本教程讲解Golang编程语言的策略设计模式

开始

策略模式是设计模式的一种。软件开发中,我们经常会遇到这样的场景,比如支付,用户支付,可以通过支付宝,微信,或者银联。 他们最终的目的都是完成付钱的动作。我们可以归纳抽象这些支付渠道为相同的流程;基本的支付动作都是相同的,只不过支付实现(策略)不一样。比如调用的api 不一样,参数不一样,签名不一样等。

我们可以定义基本的支付 interface,然后用不同的实现,完成 provider.DoPay 操作,完成支付。 这种就是最简单的策略模式。

下面以具体示例来说明如何在golang下面,完成策略模式的基础设计。

1fc7a0bb836248888ace02479b4986ea.png

策略模式

先定义基本的interface,它是所有逻辑 的通用共有性,包含一个方法 DoPay

//定义支付的 interfacetype Payment interface {    DoPay(string, string) Boolean}// 定义一个支付策略的结构体,里面有一个属性Payment,是支付的interfacetype PaymentStrategy struct {    Payment Payment}//定义一个策略的方法,调用它,会调用interface的实现方法 DoPayfunc (o *PaymentStrategy) DoPayAction(config, args string) int {    return o.Payment.DoPay(config, args)}

支付宝支付

type AlipayStrategy struct{}func (AlipayStrategy) DoPay(config, args string) int {    //TODO 这里写你具体的支付逻辑}p := PaymentStrategy{AlipayStrategy{}}p.DoPayAction(config, args) // config 和args是支付相关的参数,比如支付配置信息和订单号等

微信支付

type WeixinStrategy struct{}func (WeixinStrategy) DoPay(config, args string) int {    //TODO 这里写你具体的支付逻辑}p := PaymentStrategy{WeixinStrategy{}}p.DoPayAction(config, args) // config 和args是支付相关的参数,比如支付配置信息和订单号等

总结

策略设计模式的好处,就是抽象了具体的业务逻辑,让你的代码更清晰可读,另外因为归纳了共性的方法,你后面如果需要再接入其他支付渠道,就更简单了。因为套路差不多。

在我理解,策略设计,就是封装好套路,套路差不多,不同的只是各自支付业务逻辑的实现不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值