Go:数据交换策略,超越传统DTO模式
package main
import (
"fmt"
)
// 定义一个数据交换策略接口
type DataExchangeStrategy interface {
Execute() string
}
// 实现一个具体的策略
type DirectToDataExchange struct{}
func (d DirectToDataExchange) Execute() string {
return "直接交换数据"
}
// 实现一个具体的策略
type DataTransferObjectExchange struct{}
func (d DataTransferObjectExchange) Execute() string {
return "使用DTO交换数据"
}
// 策略执行函数
func executeStrategy(strategy DataExchangeStrategy) {
fmt.Println(strategy.Execute())
}
func main() {
// 使用直接数据交换策略
executeStrategy(DirectToDataExchange{})
// 使用DTO数据交换策略
executeStrategy(DataTransferObjectExchange{})
}
这段代码定义了一个接口DataExchangeStrategy
和两个具体的策略实现DirectToDataExchange
和DataTransferObjectExchange
。executeStrategy
函数接受一个DataExchangeStrategy
类型的参数,并打印执行策略后的结果。在main
函数中,我们创建了这些策略的实例并执行它们。这个例子展示了如何在Go中使用接口和多态性来实现不同的数据交换策略。
评论已关闭