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专用的接口。
有疑问加站长微信联系(非本文作者)