go学习 day201 工厂模式

package main

import (
	"day201/model"
	"fmt"
)

func main() {

	// 创建一个student的实例
	//var stu  = model.Student{"小红",12}
	//fmt.Println(stu)

	// 定义 student 结构体是首字母小写,我们可以通过工厂模式来解决
	var stu = model.Newstudent("tom",45,20)
	fmt.Println(*stu)
	fmt.Println("name=",stu.Name,"score=",stu.Score)
	fmt.Println("age=",stu.Getage())

}

package model

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

// 因为student结构体首字母是小写,因此是只能在model使用
// 我们通过工厂模式来解决
func Newstudent(n string,s float64,a int) *student {
	return &student{
		Name: n,
		Score: s,
		age: a,
	}
}

// 如果score字段首字母小写。则,在其他包不可以直接访问,我们可以提供一个方法
func (s *student) Getage() int {
	return s.age
}

posted @ 2023-03-08 11:29  六月OvO  阅读(9)  评论(0编辑  收藏  举报