|
|
|
// 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
|
|
|
|
}
|