longjoy/micro-go-book

11章代码问题

Opened this issue · 0 comments

	var tokenService service.TokenService
	var tokenGranter service.TokenGranter
	var tokenEnhancer service.TokenEnhancer
	var tokenStore service.TokenStore
	var userDetailsService service.UserDetailsService
	var clientDetailsService service.ClientDetailsService
	var srv service.Service


	tokenEnhancer = service.NewJwtTokenEnhancer("secret")
	tokenStore = service.NewJwtTokenStore(tokenEnhancer.(*service.JwtTokenEnhancer))
	tokenService = service.NewTokenService(tokenStore, tokenEnhancer)

这里的定义感觉不太好,
service.NewJwtTokenStore(tokenEnhancer.(*service.JwtTokenEnhancer))
这里的形参应该定义成接口,而这里声明部分使用了接口声明,
然后NewJwtTokenEnhancer以后传给接口变量,最后传给NewJwtTokenStore做实参的时候又将接口类型转换成结构体
规范写法应该在NewJwtTokenStore接收的地方就是接口
这样写让看代码的人感觉结构不清晰