22 lines
1.0 KiB
Python
22 lines
1.0 KiB
Python
from typing import Any, Dict, Optional
|
|
from services.config_manager import config_manager
|
|
|
|
class BaseService:
|
|
"""所有服务实现的基类,提供统一的配置处理功能"""
|
|
|
|
def __init__(self, service_type: str, selected_role: Optional[Dict[str, Any]] = None):
|
|
self.selected_role = selected_role
|
|
self.service_type = service_type
|
|
self.config = config_manager.get_service_config(service_type, selected_role)
|
|
|
|
def get_config(self, key: str, default_value: Any = None) -> Any:
|
|
"""获取配置值,按照优先级规则"""
|
|
if key in self.config:
|
|
return self.config[key]
|
|
return config_manager.get_config_value(key, self.selected_role, default_value)
|
|
|
|
def update_config(self, new_role_config: Dict[str, Any] = None) -> None:
|
|
"""更新服务配置,用于动态切换角色时"""
|
|
self.selected_role = new_role_config if new_role_config else self.selected_role
|
|
self.config = config_manager.get_service_config(self.service_type, self.selected_role)
|