go18/skills/ioc/interface.go

36 lines
502 B
Go

package ioc
var containers = []Contaienr{
Api,
Controller,
Config,
Default,
}
func Init() {
for _, c := range containers {
if err := c.Init(); err != nil {
panic(err)
}
}
}
// ioc 容器功能定义
type Contaienr interface {
Registry(name string, obj Object)
Get(name string) Object
// 初始化所有已经注册的对象
Init() error
}
// 注册对象的约束
type Object interface {
Init() error
}
type ObjectImpl struct{}
func (o *ObjectImpl) Init() error {
return nil
}