我想我陷入了思考以下问题的多态性解决方案中:
假设我有BaseTX struct一个交易字段。现在我有两种特殊类型的交易:RewardTX struct和AllowanceTX struct。
RewardTX struct此刻只有 的组成BaseTX struct。
AllowanceTX struct具有BaseTX struct和 的组成AddField。
我还有一个函数logicAndSaveTX(),它对来自的字段有一些逻辑,BaseTX但最后是使用序列化整个对象json.Marshal()并将其保存在byte[]某处。
type TXapi interface {
logicAndSaveTX()
}
type BaseTX struct {
Field1 string
Field2 string
}
type RewardTX struct {
BaseTX
}
type AllowanceTX struct {
BaseTX
AddField string
}
func (tx BaseTX) logicAndSaveTX() {
// logic on BaseTX fields; simplified:
tx.Field1 = "overwritten"
tx.Field2 …Run Code Online (Sandbox Code Playgroud)