我是 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)
}
第二个例子
type BaseClass struct {
db *DB
}
func NewBaseClass(db *DB) *BaseClass {
return &BaseClass{db}
}
type ChildrenClass1 struct {
baseClass *BaseClass
}
func NewChildrenClass1(baseClass *BaseClass) *ChildrenClass1 {
return &ChildrenClass1{baseClass}
}
type ChildrenClass2 struct {
baseClass *BaseClass
}
func NewChildrenClass2(baseClass *BaseClass) *ChildrenClass2 {
return &ChildrenClass2{baseClass}
}
func main(){
db := NewDB()
baseClass := NewBaseClass(db)
chilrend1 := NewChildrenClass1(baseClass)
chilrend2 := NewChildrenClass2(baseClass)
}
LEATH
相关分类