关于单一原则和依赖反转原则
像那个例子:
// 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() }
定义个交通接口,面向接口开发,符合依赖反转原则,但是这样写又好像违背了单一性原则,因为接口实现了多态,相当于集成了自行车和汽车多种功能。
这种该如何界定取舍呢?