from abc import ABC, abstractmethod from typing import Any, Dict, List, Optional class BaseStorage(ABC): """ 存储接口抽象基类 定义所有存储模块需要实现的基本方法 """ @abstractmethod def save(self, key: str, value: Any) -> bool: """ 保存数据 Args: key: 键 value: 值 Returns: bool: 保存是否成功 """ raise NotImplementedError @abstractmethod def load(self, key: str, default: Any = None) -> Any: """ 加载数据 Args: key: 键 default: 默认值 Returns: Any: 加载的数据 """ raise NotImplementedError @abstractmethod def delete(self, key: str) -> bool: """ 删除数据 Args: key: 要删除的键 Returns: bool: 删除是否成功 """ raise NotImplementedError @abstractmethod def exists(self, key: str) -> bool: """ 检查键是否存在 Args: key: 键 Returns: bool: 键是否存在 """ raise NotImplementedError @abstractmethod def list_keys(self) -> List[str]: """ 列出所有键 Returns: List[str]: 所有键的列表 """ raise NotImplementedError @abstractmethod def clear(self) -> bool: """ 清空所有数据 Returns: bool: 清空是否成功 """ raise NotImplementedError @abstractmethod def save_batch(self, data: Dict[str, Any]) -> bool: """ 批量保存数据 Args: data: 要保存的数据字典 Returns: bool: 保存是否成功 """ raise NotImplementedError @abstractmethod def load_batch(self, keys: List[str]) -> Dict[str, Any]: """ 批量加载数据 Args: keys: 要加载的键列表 Returns: Dict[str, Any]: 加载的数据字典 """ raise NotImplementedError