Golang 工厂模式

Jackey Golang 2,662 次浏览 , 没有评论

student.go

package model

type student struct {
  Name string
  age int
}

// 结构体student 首字母小写,因此只能在 model 内部使用
// 如果想外部调用,我们可以通过工厂模式解决
func NewStudent(name string, age int) *student {
  return &student{
    Name: name,
    age:  age,
  }
}

// 如果 score 字段首字母小写,则其他包不可以调用,我们可以提供一个方法来调用
func (s *student) GetAge() int {
  return s.age
}

main.go

package main

import (
  "fmt"
  "tianqi-api/tests/study/factory/model"
)

func main()  {
  var stu = model.NewStudent("gopher.cc", 10)

  fmt.Println("name =", stu.Name, " age =", stu.GetAge())
}

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Go