首页 > 其他 > 详细

golang之工厂模式

时间:2019-12-23 23:00:42      阅读:93      评论:0      收藏:0      [点我收藏+]

说明:

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

如果包里面的结构体变量首字母小写,引入后,不能直接使用,可以工厂模式解决:

ch1.go

package ch1

type student struct {
    Name string
    Score float64
}

func NewStudent(n string, s float64) *student {
    return &student{
        Name:  n,
        Score: s,
    }
}

main.go

package main

import (
    "fmt"
    "work/ch1"
)

func main() {
    var stu = ch1.NewStudent("tom", 88.88)
    fmt.Println(*stu)
    fmt.Println("name=",stu.Name, "score=",stu.Score)
}

如何student结构体中的Score变成首字母小写的score,那么可以定义一个方法,用于获取score的值:

ch1.go

package ch1

type student struct {
    Name string
    score float64
}

func NewStudent(n string, s float64) *student {
    return &student{
        Name:  n,
        score: s,
    }
}

func (s *student) GetScore() float64 {
    return s.score
}

main.go

package main

import (
"fmt"
"work/ch1"
)

func main() {
    var stu = ch1.NewStudent("tom", 888.88)
    fmt.Println(*stu)
    fmt.Println("name=",stu.Name, "score=",stu.GetScore())
}

golang之工厂模式

原文:https://www.cnblogs.com/xiangxiaolin/p/12088559.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!