小编mfi*_*ink的帖子

同一结构的多个接口

我正在学习 Go 并想知道在某些情况下是否认为 Golang 中的好/好/典型(鼓励?)实践根据消费者代码将使用该结构做什么来创建多个interfacestruct体?

我在质疑这一点,因为我有一个结构对象可以说在我的代码库中做了太多事情,我想添加一些测试并只模拟该结构的某些用法/消费者。说我有,

对于(人为的)示例,环境结构

// Environment/env.go

package env

type Environment struct {
  sunny bool,
  fullMoon bool,
  temp float64
  // ...
}

func (e *Environment) IsSunny() bool {
  return e.sunny
}

func (e *Environment) IsFullMoon() bool {
  return e.fullMoon
}

func (e *Environment) GetTemp() float64 {
  return e.temp
}
Run Code Online (Sandbox Code Playgroud)

上述结构具有与一些环境条件(白天和黑夜时间)相关的属性和方法。

然后这个结构有多个消费者,但每个消费者interface只关心可用方法的一个子集:

// daytime.go

type DayEnv interface {
  IsSunny() bool
  GetTemp() float64
}

func getDaytime(de DayEnv) {
  sunStatus := getSunStatus(de)
  temp      := getDayTemp(de) …
Run Code Online (Sandbox Code Playgroud)

oop struct go

3
推荐指数
1
解决办法
2151
查看次数

标签 统计

go ×1

oop ×1

struct ×1