代码拉取完成,页面将自动刷新
package ioc
import "fmt"
// 管理Controller对象
// 采用一个map来存储对象, 存储在内存中, 程序启动 解决多个impl对象的依赖问题
var controller = map[string]IocObject{}
// 对所有的对象统一执行 初始化
func InitController() error {
for k, v := range controller {
err := v.Init()
if err != nil {
return fmt.Errorf("init %s error, %s", k, err)
}
}
return nil
}
// 可以管理任何对象, 我们定义的业务对象是不是还有基础的方法
// Init() 初始化对象的
// 托管业务实现的类
func RegistryController(obj IocObject) {
// 避免覆盖
// if _, ok := controller[obj.Name()]; ok {
// panic("该对象已经注册: " + obj.Name())
// }
controller[obj.Name()] = obj
}
// 打印下当前已经托管的实例的名称
func ShowConntrollers() (names []string) {
for k := range controller {
names = append(names, k)
}
return names
}
func GetController(name string) any {
v, ok := controller[name]
if !ok {
panic("controller not found: %s")
}
return v
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。