30 lines
No EOL
1 KiB
Python
30 lines
No EOL
1 KiB
Python
from typing import Dict,List
|
|
from .base_handler import BaseHandler
|
|
from .crypto_handler import CryptoHandler
|
|
from services.crypto_service import CryptoService
|
|
|
|
class HandlerRegistry:
|
|
"""处理器注册中心"""
|
|
|
|
def __init__(self):
|
|
self.handlers: Dict[str, BaseHandler] = {}
|
|
self._register_default_handlers()
|
|
|
|
def _register_default_handlers(self):
|
|
"""注册默认处理器"""
|
|
# 注册加密货币处理器
|
|
crypto_service = CryptoService()
|
|
crypto_handler = CryptoHandler(crypto_service)
|
|
self.register_handler(crypto_handler)
|
|
|
|
def register_handler(self, handler: BaseHandler):
|
|
"""注册处理器"""
|
|
self.handlers[handler.get_handler_name()] = handler
|
|
|
|
def get_handler(self, handler_name: str) -> BaseHandler:
|
|
"""获取处理器"""
|
|
return self.handlers.get(handler_name)
|
|
|
|
def list_handlers(self) -> List[str]:
|
|
"""列出所有可用的处理器"""
|
|
return list(self.handlers.keys()) |