Go 工厂模式
二十五、工厂模式
golang 的结构体没有构造函数,通常可以使用工厂模式来解决这个问题
实例:
stu1.go
package model
type student struct {
name string
age int
grade int
}
func NewStudent(n string,a int,g int) *student {
return &student{
name: n,
age: a,
grade: g,
}
}
func (s *student)GetScore() int {
return s.grade
}
stu.go
package model
type Student struct {
Name string
Age int
}
stufunc.go
package main
import (
"fmt"
"test/model"
)
func main() {
var stu1 = model.Student{"张三",18}
fmt.Println(stu1)
var name = ""
var age = 0
var grade = 60
fmt.Println("请输入姓名,年龄,分数")
fmt.Scanln(&name)
fmt.Scanln(&age)
fmt.Scanln(&grade)
var stu2 = model.NewStudent(name,age,grade)
fmt.Println(*stu2)
fmt.Printf("score=%v",stu2.GetScore())
}