Golang Go语言中怎样更好地实现多态?
Golang Go语言中怎样更好地实现多态?
问题:虽然这样间接地实现了多态,但是由于 Model 真的没有任何 method (方法)只有数据成员,这个类型定义为 interface{} 总之有些不优雅的感觉,想问下大家有没有更好的实现方法?
代码见 gist (或下方的图片): https://gist.github.com/inhzus/b301db257c520c15466fc833aaaec7f6
更多关于Golang Go语言中怎样更好地实现多态?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
10 回复
怎么我这 gist 都打不开…github 又可以
更多关于Golang Go语言中怎样更好地实现多态?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
if 来 if 去的,还什么多态?
#3 用 switch 就行了,示例代码而已,没必要纠结这个吧
针对接口编程。
不要随便使用 iterface{}这种类型转来转去的。这和随意转成 void*有啥区别。
同意,用接口实现多态最合适。
我不反对使用 interface{},尤其是需要动态性时,用 interface{} 是必然的
不过你这个代码,和多态实在没什么关系。多态是不涉及 type assertion 的
void* 无类型,接口有类型,这就是最大的区别