Go 以接口为连接点的水平组合 的代码示范

7 min read

以下是一段使用 Go 语言实现接口为连接点的水平组合示例代码:

package main

import (
    "fmt"
)

// 定义接口 A
type A interface {
    MethodA() string
}

// 定义接口 B
type B interface {
    MethodB() string
}

// 定义实现接口 A 的结构体
type ImplementA struct {}

func (impl *ImplementA) MethodA() string {
    return "MethodA"
}

// 定义实现接口 B 的结构体
type ImplementB struct {}

func (impl *ImplementB) MethodB() string {
    return "MethodB"
}

// 定义组合接口 C,接口 C 包含接口 A 和接口 B 的方法
type C interface {
    A
    B
}

// 定义实现组合接口 C 的结构体,结构体内部包含实现接口 A 和 B 的结构体
type ImplementC struct {
    a ImplementA
    b ImplementB
}

func (impl *ImplementC) MethodA() string {
    return impl.a.MethodA()
}

func (impl *ImplementC) MethodB() string {
    return impl.b.MethodB()
}

func main() {
    // 实例化组合接口 C 的结构体
    var c C = &ImplementC{}

    // 调用接口 A 的方法
    fmt.Println(c.MethodA())

    // 调用接口 B 的方法
    fmt.Println(c.MethodB())
}

在这个示例中,我们定义了三个接口 A、B 和 C,其中接口 C 是由接口 A 和接口 B 组成的水平组合接口。接着,我们定义了两个结构体 ImplementA 和 ImplementB,分别实现接口 A 和接口 B 的方法。

为了实现组合接口 C,我们定义了一个新的结构体 ImplementC,将 ImplementA 和 ImplementB 包含进来,实现组合接口 C 的方法。

最后,在 main 函数中,我们实例化了 ImplementC,并用定义的 C 接口来调用 ImplementsC 中包含的接口 A 和接口 B 的方法。

这个示例展示了接口为连接点的水平组合的代码实现方式。 通过这种方式,我们可以灵活地组合多个接口,使得代码的构建更加模块化和可维护。