go 工厂模式解决struct小写问题

Golang 的结构体没有构造函数,通常可以使用工厂模式来解决这个问题。

一般结构体名称为大写字母开头才能被外部函数调用,用工厂模式来解决

示例:

student.go

package model

// 定义一个结构体
type student struct {
	Name  string
	Score float64
}

// 因为student结构体首字母是小写,因此只能在model内部调用
// 通过工厂模式来解决外部调用问题
// NewStudent gongchang
func NewStudent(n string, s float64) *student {
	a := &student{
		Name:  n,
		Score: s,
	}
	return a
}

  

  

main.go

package main

import (
	"0426/gongchang/model"
	"fmt"
)

func main() {

	// 创建要给Student实例
	// var stu = model.Student{
	// 	Name:  "tom",
	// 	Score: 88.8,
	// }
	// 定student结构体是首字母小写,定义工厂模式来解决
	var stu = model.NewStudent("tom~", 88.8)
	fmt.Println(*stu)
}

  

posted @ 2020-04-26 16:44  枯藤老艹树  阅读(816)  评论(0编辑  收藏  举报