Go で共有フィールドを持つ構造体の共通メソッドを実装する方法
共通フィールドを共有する構造体を操作する場合、それらすべてに適用できるメソッドを追加することが望ましいです。この質問では、Beego/ORM のコンテキストでこのシナリオを検討します。ModelA と ModelB の 2 つの構造体に Save() メソッドが必要です。
提案されたソリューション
}
Save()
}
// Implementation for ModelA
Embedding:
という基本構造体を作成します。共有 GUID フィールドを含む ModelC。この構造体を ModelA と ModelB に埋め込みます。 ModelC で Save() メソッドを定義して、ModelA と ModelB の両方で使用できるようにします。// Implementation for ModelB
</p>type ModelC struct {<ul> <li><strong>}</strong></li>func (c ModelC) Save() エラー{</ul> <p><br>}</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">Guid string `orm:"pk"`
}
// Implementation for ModelC
}
ModelC FiledA string
ModelC FiledB string
最も適切なソリューションは、システムの特定の要件によって異なります。 Save() の実装が ModelA と ModelB の間で大幅に異なる場合、インターフェイスのアプローチにより柔軟性が高まります。ただし、共通の実装を共有している場合は、冗長コードの必要性がなくなるため、埋め込みの方が効率的になる可能性があります。
以上がフィールドを共有する Go 構造体に共通の `Save()` メソッドを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。