36 lines
502 B
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
|
||
|
}
|