网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

go依赖注入简单例子inject

go 依赖注入

说明

软件构建的核心就是管理复杂度。 - 《Code Complete》

解耦组件之间的依赖关系,避免手动配置每个组件的依赖关系。

利用库 github.com/facebookgo/inject

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的繁昌网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

例子

package main

import (
    "fmt"
    "github.com/facebookgo/inject"
)

type DBEngine struct {
    Name string
}

type UserDB struct {
    Db *DBEngine `inject:""`
}

type UserService struct {
    Db *UserDB `inject:""`
}

type App struct {
    Name string
    User *UserService `inject:""`
}

func (a *App) Create() string {
    return "create app, in db name:" + a.User.Db.Db.Name+" app name :"+ a.Name
}

type Object struct {
    App *App
}

func Init() *Object {
    db := DBEngine{Name: "db1"}
    var g inject.Graph
    app := App{Name: "go-app"}

    _ = g.Provide(
        &inject.Object{Value: &app},
        &inject.Object{Value: &db},
    )
    _ = g.Populate()
    return &Object{
        App: &app,
    }

}

func main() {
    obj := Init()
    fmt.Println(obj.App.Create())
}

打印结果

create app, in db name:db1 app name :go-app

分享名称:go依赖注入简单例子inject
网站路径:http://bjjierui.cn/article/ippods.html

其他资讯