本节提供一个golang interface demo项目,用于基本的工程开发规范
package user
type IUser interface {
addUser(uid string) (User, error)
deleteUser(uid string) (User, error)
getUserInfo(uid string) (User, error)
}
var user IUser
type BaseUserInfo struct {
Name string `json:"name"`
Age int `json:"age"`
Uid string `json:"uid"`
IdentityId string `json:"identityId"`
}
type User struct {
BaseUserInfo
HttpClient http.Client
lock sync.Mutex
}
func GetUserObj() IUser {
return user
}
func NewIUserObj() IUser {
user = &User{
}
return user
}
func (u *User) addUser(uid string) (User, error) {
return User{}, nil
}
func (u *User) deleteUser(uid string) (User, error) {
return User{}, nil
}
func (u *User) getUserInfo(uid string) (User, error) {
fmt.Println("uid is ",uid)
return User{}, nil
}
package init
func Init() {
user.NewIUserObj()
}
package main
func main() {
init.Init()
user := GetUserObj()
user.getUserInfo("theshy")
}