Golang을 사용하여 의존성을 주입하는 방법
Golang 주입 의존성 사용 방법
방법
1. main.생성 고
cmd/app/main.제작 고, 프로그램 실행 준비 입구
main.go
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}
2. 종속 객체의 패키지 만들기
이번에는 의식적으로 청결 체계를 구축하여usecase층을 만들어야 한다
cmd 디렉터리와 같은 층에서usecase 디렉터리를 만들고 go 파일을 만듭니다.
이번 가설은 프로그램 사용자의usecase,user를 설정합니다.go를 생성합니다.
user.go
package usecase
// TODO 今後の手順で処理を追加する
3. 인터페이스, struct, 인터페이스를 되돌려 주는 New 함수 만들기
사용자 관련 논리를 확인하고interface,struct,New 함수를 만듭니다.
이번에는 간단하게 대답하기 위한 기능이 있습니다,user.goo에 추가.
인터페이스 정의
user.go
type User interface {
Answer() (string, error)
}
struct 만들기
user.go
type User interface {
Answer() (string, error)
}
type user struct {
// もしuser の持つロジックが別のパッケージに依存する場合はここに記述
}
수신기 함수에서 논리를 실현하다
Answer 메소드를 패브릭 수신기 함수로 구현하여 User interface에 정의된 Answer 메소드를 구현합니다.
user.go
type User interface {
Answer() (string, error)
}
type user struct {
// もしuser の持つロジックが別のパッケージに依存する場合はここに記述
}
func (receiver *user) Answer() (string, error) {
return "Answerメソッドが呼ばれました", nil
}
New 함수 구현
사용자 인터페이스를 되돌려주는 함수를 실현합니다.
이 함수를 호출하여 Answer 메소드의 인터페이스를 사용할 수 있습니다.goo에서 사용 가능합니다.
user.go
func NewUserUsecase() User {
return &user{}
}
type User interface {
Answer() (string, error)
}
type user struct {
// もしuser の持つロジックが別のパッケージに依存する場合はここに記述
}
func (receiver *user) Answer() (string, error) {
return "Answerメソッドが呼ばれました", nil
}
4. main.goo에서 New 함수 호출
main.go
package main
import "fmt"
func main() {
userUsecase, nil := usecase.NewUserUsecase()
fmt.Println(userUsecase.Answer()) // "Answerメソッドが呼ばれました"
}
끝말
이상은 의존성의 주입이다.
main.go에서usecase까지.go에 대한 의존은 사용자 구조체가 가지고 있는 논리가 아니라 User 인터페이스를 향한 것이다.
User 인터페이스에서 정의한 Answer 함수를 호출한 후 우연히 이 함수를 구현하는 사용자 구조의 Answer 메소드 로직을 호출했습니다.의 형식.
Reference
이 문제에 관하여(Golang을 사용하여 의존성을 주입하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/suetak/articles/0415978e3f8982텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)