小编Hun*_*ham的帖子

在 Golang 中使用组合的正确方法是什么

我是 OOP 人,最近我必须研究 Golang,这是我以前没有做过的语言。虽然我已经阅读了很多讨论组合的文章,但我注意到在 Golang 上正确使用它有点棘手

假设我有两个 Golang 组合示例,我不知道哪一个是正确的,它们之间会有所不同吗?谢谢

第一个例子

type BaseClass struct {
   db *DB
}

func NewBaseClass(db *DB) *BaseClass {
  return &BaseClass{db}
}

type ChildrenClass1 struct {
     baseClass *BaseClass
}

func NewChildrenClass1(db *DB) *ChildrenClass1 {
  baseClass := NewBaseClass(db)
  return &ChildrenClass1{baseClass}
}

type ChildrenClass2 struct {
     baseClass *BaseClass
}

func NewChildrenClass2(db *DB) *ChildrenClass2 {
  baseClass := NewBaseClass(db)
  return &ChildrenClass2{baseClass}
}

func main(){
  db := NewDB()
  chilrend1 := NewChildrenClass1(db)
  chilrend2 := NewChildrenClass2(db)
}
Run Code Online (Sandbox Code Playgroud)

第二个例子

type BaseClass struct {
   db *DB …
Run Code Online (Sandbox Code Playgroud)

inheritance design-patterns composition go

-1
推荐指数
1
解决办法
1948
查看次数

标签 统计

composition ×1

design-patterns ×1

go ×1

inheritance ×1