关于单一原则和依赖反转原则
像那个例子:
// type Traffic interface {
// Move()
// }
type Bike struct{}
func (b *Bike) Move() {
fmt.Println("ride bike")
}
type Car struct{}
func (c *Car) Move() {
fmt.Println("drive car")
}
type Person struct {
name string
}
// func (p *Person) By(tr Traffic) {
// tr.Move()
// }
func (p *Person) RideBike(b Bike) {
b.Move()
}
func (p *Person) DriveCar(c Car) {
c.Move()
}定义个交通接口,面向接口开发,符合依赖反转原则,但是这样写又好像违背了单一性原则,因为接口实现了多态,相当于集成了自行车和汽车多种功能。
这种该如何界定取舍呢?