面试题答案
一键面试package main
import "fmt"
// UserService 定义服务接口
type UserService interface {
GetUser() string
}
// UserServiceImpl 实现UserService接口
type UserServiceImpl struct{}
func (u *UserServiceImpl) GetUser() string {
return "User from UserServiceImpl"
}
// UserController 结构体,依赖UserService接口
type UserController struct {
userService UserService
}
// NewUserController 通过依赖注入创建UserController实例
func NewUserController(service UserService) *UserController {
return &UserController{
userService: service,
}
}
// HandleRequest 处理请求,调用UserService的GetUser方法
func (uc *UserController) HandleRequest() {
user := uc.userService.GetUser()
fmt.Println("Handling request, got user:", user)
}
你可以使用以下方式调用:
func main() {
// 创建UserServiceImpl实例
userService := &UserServiceImpl{}
// 通过依赖注入创建UserController实例
userController := NewUserController(userService)
// 调用HandleRequest方法
userController.HandleRequest()
}