Cette composition est-elle valide? Ou existe-t-il d'autres solutions?Est-ce une implémentation valide de la composition dans 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()
}
Tout simplement parce que quelque chose est syntaxiquement valide ne signifie pas qu'il est idiomatiques. S'il vous plaît ne pas essayer de modéliser votre code comme vous le feriez dans la POO traditionnelle. – Volker
Je cherche des solutions idiomatiques. Je ne connais que la POO traditionnelle. – sensorario