美文网首页
go的工厂模式

go的工厂模式

作者: StevenQin | 来源:发表于2019-09-28 21:11 被阅读0次

说明

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

  • 使用工厂模式来解决跨包引的私有结构体的问题
    目录结构


modal.go

package model

type students struct {
    Name   string
    scores float64
}

//student结构体是小写的,因些只能在Model使用
func NewStudent(n string, s float64) *students {
    return &students{
        Name:   n,
        scores: s,
    }
}

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

main.go

package main

import (
    "fmt"
    "go_demo/factory/model"
    )
func main(){
    //通过工厂模式来解决
    var stu1 =model.NewStudent("tome~",98.7)
    fmt.Println(*stu1)
    //由于go编译器会对指针变量取值自动处理,(*stu1).Name 等价 stu1.Name
    fmt.Println("name=",(*stu1).Name)
    fmt.Println("score=",stu1.GetScores())
}

相关文章

  • Go语言设计模式(2)工厂模式

    Go语言设计模式(2)工厂模式 工厂模式的定义 工厂模式的定义如下: Define an interface fo...

  • Go语言设计模式(3)抽象工厂模式

    Go语言设计模式(3)抽象工厂模式 抽象工厂模式的定义 抽象工厂模式的定义如下: Provide an inter...

  • go闭包和工厂模式

    先说工厂模式,工厂模式有3种:简单工厂模式;工厂方法模式;抽象工厂模式。 go语言中的闭包已经在上一节golang...

  • 设计模式——简单工厂模式

    简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactoryMethod)模式,但不属于23种GO...

  • go的工厂模式

    说明 go的结构体没有构造函数,通常是用工厂模式来解决这个问题 使用工厂模式来解决跨包引的私有结构体的问题目录结构...

  • Golang设计模式(工厂方法模式)

    工厂方法模式类图, abstract_factory_test.go car_factory.go motorbi...

  • go实现工厂模式

    面试常见题目,有时候可能让你手写一些,所以尽量做到快速手写实现。这个看起来很简单,也可能需要经常练习一下。

  • go语言工厂模式

    作者:HaigLeehttps://www.jianshu.com/u/67ec21fb270d本文由 HaigL...

  • go语言的工厂模式

    有一工程如下: model包中的student.go源码: student.go声明了一个Student的结构体,...

  • Go实现工厂模式的思考

    模式从业务场景中总结出来,然而并不是固定的。 起因 有一个多平台的抓取需求,必然要提炼一个方法,根据平台类型获取实...

网友评论

      本文标题:go的工厂模式

      本文链接:https://www.haomeiwen.com/subject/nyatpctx.html