关于单一原则和依赖反转原则

来源:1-1 课程介绍

weibo_隱懓_0

2021-03-08 13:00

像那个例子:

// 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()
}

定义个交通接口,面向接口开发,符合依赖反转原则,但是这样写又好像违背了单一性原则,因为接口实现了多态,相当于集成了自行车和汽车多种功能。

这种该如何界定取舍呢?


写回答 关注

2回答

  • 慕梦前来
    2022-11-15 20:29:25

    这是设计原则,应该要这样的

  • 慕梦前来
    2021-09-04 10:45:16

    不用取舍了吧

Go设计模式入门到实践

轻松入门Go设计模式,从基础到实践。

7680 学习 · 14 问题

查看课程

相似问题