当前位置 博文首页 > 详解用Go语言实现工厂模式(Golang经典编程案例)

    详解用Go语言实现工厂模式(Golang经典编程案例)

    作者:cui_yonghua 时间:2021-06-05 18:15

    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())
    }
    

    执行结果如下图所示:

    在这里插入图片描述

    js
    下一篇:没有了