有効な構成ですか?それとも他にも解決策がありますか?これはGoのコンポジションの有効な実装ですか?
package main
import (
"fmt"
"strings"
)
type Person struct{ name string }
type Swimmer struct{}
func (s *Swimmer) Swim(name string) {
fmt.Println(strings.Join([]string{
name,
" is swimming",
}, ""))
}
type IronMan struct {
person Person
swimmer Swimmer
}
func (i *IronMan) Swim() {
i.swimmer.Swim(i.person.name)
}
func main() {
ironMan := IronMan{
person: Person{"Mariottide"},
swimmer: Swimmer{},
}
ironMan.Swim()
}
何かが構文的に有効であるという理由だけで、それは慣用的であることを意味しません。伝統的なOOPのようにコードをモデル化しようとしないでください。 – Volker
私は慣用的な解決策を探しています。私は伝統的なOOPだけを知っています。 – sensorario