// internal/core/discovery.go package core import ( "fmt" "reflect" ) var moduleTypes []reflect.Type func RegisterModuleType(module Module) { fmt.Printf("🔍 注册模块类型: %T\n", module) moduleTypes = append(moduleTypes, reflect.TypeOf(module)) fmt.Printf("✅ 模块类型注册成功,当前注册的模块类型数量: %d\n", len(moduleTypes)) } func DiscoverModules(manager *ModuleManager) error { fmt.Printf("🔍 开始发现模块,当前注册的模块类型数量: %d\n", len(moduleTypes)) for i, typ := range moduleTypes { fmt.Printf("🔍 发现模块类型 %d: %s\n", i+1, typ.String()) module := reflect.New(typ.Elem()).Interface().(Module) fmt.Printf("✅ 创建模块实例: %s\n", module.Name()) manager.RegisterModule(module) } fmt.Printf("✅ 模块发现完成,总共发现 %d 个模块\n", len(moduleTypes)) return nil }