答疑解惑请问接口的用途比函数好在哪?

go2love · · 3402 次点击
抛开所谓的低耦合的八股文,Go里面使用接口还有另外一个用途:避免循环依赖。 试想package x需要package y的类型,y同时需要x的功能,那么就循环依赖了。 如果x使用接口,y来提供实现,那么就不存在循环依赖了。
#7
更多评论
面向接口,低耦合,易扩展吧
#1
实现相同功能的不同实现,就用接口,比如源码中的 hash.Hash,有多种实现,md5.New() 和 sha1.New() 等。如果用函数的话,可能就需要实现很多不同名称的函数。 在使用时,仅需要传入不同接口,即可实现不同hash算法。而且接口可以自己进行扩展。 函数也能实现这些功能,但要取不同的函数名。
#2