go interface 工程开发规范

577 阅读1分钟

本节提供一个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{
      // init your User
   }
   return user
}

func (u *User) addUser(uid string) (User, error) {
   // your code
   return User{}, nil
}

func (u *User) deleteUser(uid string) (User, error) {
   // your code
   return User{}, nil
}

func (u *User) getUserInfo(uid string) (User, error) {
   // your code
   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")   
}