Go面试:用Go语言实现工厂模式 (Golang经典编程案例) - Go语言中文社区

Go面试:用Go语言实现工厂模式 (Golang经典编程案例)


用Go语言实现工厂模式

golang中的struct没有构造函数,一般可以使用工厂模式来解决这个问题。这个模式本身很简单而且使用在业务较简单的情况下。一般用于小项目或者具体产品很少扩展的情况(这样工厂类才不用经常更改)。

代码结构如下:分别有main.go和student.go两个文件。
在这里插入图片描述
在student.go中:

package model

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

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

//如果score字段首字母小写,则,在其它包不可以直接方法,我们可以提供一个方法
func (s *student) GetScore() float64{
	return s.score //ok
}

在main.go中:

package main

import (
	"fmt"
	"factory/model"
)

func main() {
	//创建要给Student实例
	// var stu = model.Student{
	// 	Name :"tom",
	// 	Score : 78.9,
	// }

	//定student结构体是首字母小写,我们可以通过工厂模式来解决
	var stu = model.NewStudent("tom~", 98.8)

	fmt.Println(*stu) //&{....}
	fmt.Println("name=", stu.Name, " score=", stu.GetScore())
}

执行结果如下图所示:
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/cui_yonghua/article/details/94302824
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-08-27 18:11:43
  • 阅读 ( 1199 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢