## **工厂模式**
Golang的结构体没有构造函数,通常可以使用工厂模式来解决这个问题。
```
一个结构体的声明是这样的:
packagemodel
typeStudentstruct
{Namestring...
}
因为这里的Student的首字母S是大写的,如果我们想在其它包创建Student的实例(比如main包),
引入model包后,就可以直接创建Student结构体的变量(实例)。但是问题来了,如果首字母是小写的,
比如是typestudentstruct{....}就不不行了,怎么办\--->工厂模式来解决.
```
**工厂模式来解决问题**
使用工厂模式实现跨包创建结构体实例(变量)的案例:
如果model包的结构体变量首字母大写,引入后,直接使用,没有问题

如果model包的结构体变量首字母小写,引入后,不能直接使用,可以工厂模式解决,看老师演示,代码:

同学们思考一下,如果model包的student的结构体的字段Score改成score,我们还能正常访问吗?又应该如何解决这个问题呢?\[老师给出思路,学员自己完成\]

