假设现在有一个场景:
人绑定了吃饭,睡觉两个功能,那动物也是有这两个功能的,是不是也要绑定这两个功能??
type person struct {}
func (p *person) eat(){}
func (p *person) sleep(){}
type animal struct {}
func (a *animal) eat(){}
func (a *animal) sleep(){}
显得很繁琐,于是有一种 迪米特法则 出现了
就是把功能提到一个特定结构体身上绑定
然后新的结构体需要绑定 吃饭,睡觉 的就不要直接绑定了,就直接利用组合间接绑定
package main
type creature struct{}
func (c *creature) eat() {}
func (c *creature) sleep() {}
type person struct {
c *creature
}
type student struct {
c *creature
}
func main(){}