6.1Go接口嵌套

接口应该尽量保持小且专一。一个接口包含的方法越少,它就越具通用性,能够被更多类型实现。

一、接口嵌套使用场景

1、接口嵌套好处

  • 减少重复:通过小接口的组合,你可以在多个地方复用相同的方法集合,避免重复定义相同的方法。
  • 接口继承:Go 通过接口嵌套,类似于传统面向对象语言中的接口继承,但 Go 并没有“显式继承”的概念,接口的组合使得方法更加灵活。
  • 提升可维护性:当你把不同的功能拆分到不同的小接口中时,可以更容易地修改和维护代码。如果某个接口的实现需要调整,只需要修改它的实现,而不需要改变所有依赖于该接口的代码。

2、避免不必要的嵌套

嵌套接口应该有明确的设计目的,避免不必要的复杂性。如果一个接口的嵌套关系过深或过于复杂,会增加代码的理解成本和维护难度。

二、代码示例

尽量将接口拆分为更小的部分,组合时再根据实际需求将它们组合成更大的接口。

type Walker interface {
    Walk()
}

type Jumper interface {
    Jump()
}

type Actioner interface {
    Walker
    Jumper
}

// 如果一个类型实现了 Walker 和 Jumper,那么它也实现了 Actioner 接口
type Person struct {
    name string
    age  int
}

func (p *Person) Walk() {
    fmt.Println(p.name, "is walking.")
}

func (p *Person) Jump() {
    fmt.Println(p.name, "is jumping.")
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值