4 Star 5 Fork 4

Plato / Service-Box-go

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
factory.go 733 Bytes
一键复制 编辑 原始数据 按行查看 历史
CloudGuan 提交于 2022-12-09 09:04 . !4update: http 网关功能实现
package jsonpb
import "sync"
type (
//JsonPbFactoryFunc 工厂函数原型
JsonPbFactoryFunc func(...Option) (IJsonPbCoder, error)
)
var (
//coderFactory coder 模板工厂
coderFactory map[string]JsonPbFactoryFunc
once sync.Once
)
func init() {
once.Do(func() {
coderFactory = make(map[string]JsonPbFactoryFunc)
})
}
//MakeJsonPbWithType 根据类型创建jsonpb转码器
func MakeJsonPbWithType(name string, opts ...Option) (IJsonPbCoder, error) {
creator, ok := coderFactory[name]
if !ok {
return nil, UnSupportCoderType
}
return creator(opts...)
}
//RegisterToFactory 注册JsonPbCoder的类型
func RegisterToFactory(name string, factoryFunc JsonPbFactoryFunc) {
coderFactory[name] = factoryFunc
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/dennis-kk/service-box-go.git
git@gitee.com:dennis-kk/service-box-go.git
dennis-kk
service-box-go
Service-Box-go
v0.5.16

搜索帮助

344bd9b3 5694891 D2dac590 5694891