""" 组件服务 """ # services/component_service.py from typing import Dict, Any, List from core.component import ComponentFactory from utils.logger import get_logger # 获取日志记录器 logger = get_logger(__name__) class ComponentService: """组件服务,负责组件的注册和管理""" def __init__(self): self.component_factory = ComponentFactory def get_all_component_types(self) -> List[str]: """获取所有组件类型""" return self.component_factory.get_component_types() def register_component(self, component_type: str, component_class) -> bool: """注册组件""" try: # 使用装饰器注册组件 decorated_class = self.component_factory.register(component_type)(component_class) logger.info(f"注册组件: {component_type} -> {decorated_class.__name__}") return True except Exception as e: logger.error(f"注册组件失败: {component_type}, 错误: {str(e)}") return False def auto_discover_components(self, package_name: str = "components") -> None: """自动发现并注册组件""" try: self.component_factory.auto_discover(package_name) logger.info(f"自动发现组件完成: {package_name}") except Exception as e: logger.error(f"自动发现组件失败: {package_name}, 错误: {str(e)}") raise