2019-12-29 golang的单方法接口

_部洪波_ · · 667 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

golang的单方法接口

所谓单方法接口,就是指“仅有一个成员方法的interface类型”。例如:

// Eater 进食。
type Eater interface {
    Eat(food string) (error)
}

注意:一般单方法接口的命名惯例是 ”方法名称“+“er“ 。

gopl教程提倡单方法接口。为什么呢?除了职责单一之外,更是非常灵活,因为接口可以组合。如果说单方法接口比较”窄“,通过组合多个单方法接口,就可以立即得到一个更“宽”的接口。如同积木可以通过基本颗粒构建不同的形状。

golang面向接口编程,没有一般意义上的基类与子类的对应的概念 。

若有一系列相似的类型,各自提供接口的方法集合中的不同部分,此时若把接口的方法集合拆开,全部定义成单方法接口,就可以很灵活地实现各自所需的服务接口。

设有F/G/H三个单方法接口,类型T1要实现F/G两个接口,类型T2要实现G/H两个方法接口。既可以单独实现接口,也可以把F/G组合成一个T1专用的接口,把G/H组合成一个T2专用的接口。


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

本文来自:简书

感谢作者:_部洪波_

查看原文:2019-12-29 golang的单方法接口

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

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