Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Melaksanakan Kaedah `Save()` Biasa untuk Go Structs Berkongsi Medan?
Cara Melaksanakan Kaedah Biasa untuk Struktur dengan Medan Dikongsi dalam Go
Apabila bekerja dengan struct yang berkongsi medan yang sama, ia mungkin wajar untuk menambah kaedah yang boleh digunakan untuk kesemuanya. Soalan ini meneroka senario ini dalam konteks Beego/ORM, di mana dua struct, ModelA dan ModelB, memerlukan kaedah Save().
Cadangan Penyelesaian
<br>taip antara muka Savable {</p> <pre class="brush:php;toolbar:false">Save()
}
func (ModelA) Save() {
// Implementation for ModelA
}
func (b ModelB) Save() {
// Implementation for ModelB
}
taip struct ModelC {
Guid string `orm:"pk"`
}
ralat func (c ModelC) Save(). {
// Implementation for ModelC
}
taip ModelA struct {
ModelC FiledA string
}
taip ModelB struct {
ModelC FiledB string
}
Berhati-hati dengan Pembenaman
Perlu diambil perhatian bahawa pembenaman mempunyai had tertentu. Walaupun kaedah Save() terbenam akan tersedia untuk ModelA dan ModelB, sebarang medan tambahan khusus untuk struct ini tidak akan disertakan secara automatik dalam operasi Save().
Kesimpulan
Penyelesaian yang paling sesuai bergantung pada keperluan khusus sistem. Jika pelaksanaan Save() berbeza dengan ketara antara ModelA dan ModelB, pendekatan antara muka memberikan fleksibiliti yang lebih besar. Walau bagaimanapun, jika mereka berkongsi pelaksanaan yang sama, pembenaman mungkin lebih cekap kerana ia menghapuskan keperluan untuk kod berlebihan.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Kaedah `Save()` Biasa untuk Go Structs Berkongsi Medan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!