go 接口(interface)?

ysxdashing · 2022-01-20 11:15:30 · 2014 次点击 · 预计阅读时间不到 1 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2022-01-20 11:15:30 的文章,其中的信息可能已经有所发展或是发生改变。


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2014 次点击  
加入收藏 微博
15 回复  |  直到 2022-01-24 15:52:06
whoam1
whoam1 · #1 · 3年之前

我的理解:接口是为了抽象和解耦合。 让使用者依赖接口而不是依赖实现

liangmanlin
liangmanlin · #2 · 3年之前

对,没有用,不要学go,也不要学编程

GO_go_GO1
GO_go_GO1 · #3 · 3年之前

理解理解再说

ysxdashing
ysxdashing · #4 · 3年之前
liangmanlinliangmanlin #2 回复

对,没有用,不要学go,也不要学编程

你这人有病 说话阴阳怪气的,神经病,你要是不想回答就别回答。人品有问题

ysxdashing
ysxdashing · #5 · 3年之前
GO_go_GO1GO_go_GO1 #3 回复

理解理解再说

就是因为不理解为什么这样写,才问的哈

ysxdashing
ysxdashing · #6 · 3年之前
whoam1whoam1 #1 回复

我的理解:接口是为了抽象和解耦合。 让使用者依赖接口而不是依赖实现

抽象应该是把相同类似的功能写一遍,而不是所有的需要这个方法的结构体都要实现

whoam1
whoam1 · #7 · 3年之前

接口是一种类型、go的接口相当于其他语言的父类

ysxdashing
ysxdashing · #8 · 3年之前
whoam1whoam1 #7 回复

接口是一种类型、go的接口相当于其他语言的父类

子类应该是有父类的属性和方法的,相同的方法和属性应该写在父类中,子类继承就好。谢谢回复

ysxdashing
ysxdashing · #9 · 3年之前
whoam1whoam1 #7 回复

接口是一种类型、go的接口相当于其他语言的父类

go的接口中的方法 是需要每个结构体自己实现,这样不就冗余了吗,也可能是我刚学go,还不知道接口的妙用。

jarlyyn
jarlyyn · #10 · 3年之前

接口是一种类型

很多语言都有接口的概念

比如php,java

jinl80
jinl80 · #11 · 3年之前

把它理解为纯虚父类就好了,所有实现了对应方法的struct 都是它的子类

whoam1
whoam1 · #12 · 3年之前

看一些官方库的设计、你就应该能明白些。例如io接口、不同平台下相同功能的不同实现

Mericusta
Mericusta · #13 · 3年之前

标准库 net 看看呢?看看 conn 在不同协议下的实现和其对外暴露的接口在使用者角度的统一?

或者你可以先去学习学习其他的带有完整 OO 体系的语言,比如 CPP 和 Jave,看看传统 OO 到底是怎么用的,用来干嘛的。

然后再带入 GO,看看这种 “简化” 后的 OO 又可以干些什么?

PS:推荐本 OO 思想的情景推演书,大话设计模式,比起“GOF四人帮”写的那本通俗易懂多了

jsonlws
jsonlws · #14 · 3年之前

统一规范化调用返回,只能说是一种规范化并不是强制这么使用,多人开发的时候接口就是一种很好典范

ws1992go
ws1992go · #15 · 3年之前

接口的意义在于组合,将有相似操作的服务归为一组,例如:多种文件系统,无非读写,文件信息等,改三个个功能,那么就可以定义一个包含 读写,文件信息功能的接口。不同的文件系统只要实现接口中的方法就行。

k8s CSI , CNI , CRI 的理念就来源于 Golang 的接口。

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传