策略模式
定义接口,具体不同的业务不同的实现
软件开发中,我们经常会遇到这样的场景,比如支付,用户支付,可以通过支付宝,微信,或者银联。
他们最终的目的都是完成付钱的动作。我们可以归纳抽象这些支付渠道为相同的流程;
基本的支付动作都是相同的,只不过支付实现(策略)不一样。比如调用的api 不一样,参数不一样,签名不一样等。
我们可以定义基本的支付 interface,然后用不同的实现,完成 provider.DoPay 操作,完成支付。
这种就是最简单的策略模式。
上代码
package main
import "fmt"
/**
策略模式
定义接口,具体不同的业务不同的实现
软件开发中,我们经常会遇到这样的场景,比如支付,用户支付,可以通过支付宝,微信,或者银联。
他们最终的目的都是完成付钱的动作。我们可以归纳抽象这些支付渠道为相同的流程;
基本的支付动作都是相同的,只不过支付实现(策略)不一样。比如调用的api 不一样,参数不一样,签名不一样等。
我们可以定义基本的支付 interface,然后用不同的实现,完成 provider.DoPay 操作,完成支付。
这种就是最简单的策略模式。
*/
//定义接口
type Payment interface {
DoPay(string, string