Comment implémenter une méthode commune pour les structures avec un champ partagé dans Go
Lorsque vous travaillez avec des structures partageant un champ commun, cela peut Il serait souhaitable d’ajouter une méthode applicable à chacun d’eux. Cette question explore ce scénario dans le contexte de Beego/ORM, où deux structures, ModelA et ModelB, nécessitent une méthode Save().
Solutions proposées
<br>type Saveable interface {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">Save()
}
func (un modèle A) Save() {
// Implementation for ModelA
}
func (b ModelB) Enregistrer() {
// Implementation for ModelB
}
<br>tapez ModelC struct {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">Guid string `orm:"pk"`
}
func (c ModelC) Erreur Save() {
// Implementation for ModelC
}
tapez la structure ModelA {
ModelC FiledA string
}
tapez la structure ModelB {
ModelC FiledB string
}
Attention avec Intégration
Il convient de noter que l'intégration présente certaines limites. Bien que la méthode Save() intégrée soit disponible pour ModelA et ModelB, les champs supplémentaires spécifiques à ces structures ne seront pas automatiquement inclus dans l'opération Save().
Conclusion
La solution la plus appropriée dépend des exigences spécifiques du système. Si l'implémentation de Save() varie considérablement entre ModelA et ModelB, l'approche d'interface offre une plus grande flexibilité. Cependant, s'ils partagent une implémentation commune, l'intégration peut être plus efficace car elle élimine le besoin de code redondant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!