依赖倒置原则(DIP)

   依赖倒置原则(Dependency Inversion Principle, DIP):高层模块不应该依赖于低层模块,二者应该依赖于其抽象。抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。

Golang Demo

package dependenceinversion

type CourseInterface interface {
    studyCourse()
}
package dependenceinversion

import "fmt"

type JavaCourse struct {
}

func NewJavaCourse() *JavaCourse {
    return &JavaCourse{}
}

func (JavaCourse) studyCourse() {
    fmt.Println("study java")
}

Java Demo

UML

依赖倒置原则UML

补充另一个版本的Java/Scala Demo 以及源码解析

Java Demo_

Scala Demo

UML_

源码解析

Last updated

Was this helpful?