模块管理优化

This commit is contained in:
liuwei
2025-03-20 11:51:18 +08:00
parent 3b2fc24d26
commit 762568894b
2 changed files with 27 additions and 2 deletions

View File

@@ -13,7 +13,32 @@ from plugin_common.event_system import EventSystem, EventType
class PluginManager:
"""插件管理器,负责插件的加载、初始化、启动、停止和卸载"""
"""插件管理器,负责加载、卸载、启动、停止插件"""
# 单例实例
_instance = None
@classmethod
def get_instance(cls, plugin_dir=None):
"""获取单例实例
Args:
plugin_dir: 插件目录,如果已有实例则忽略此参数
Returns:
PluginManager实例
"""
if cls._instance is None:
cls._instance = cls(plugin_dir=plugin_dir or "plugins")
return cls._instance
def __new__(cls, *args, **kwargs):
"""实现单例模式"""
if cls._instance is None:
cls._instance = super(PluginManager, cls).__new__(cls)
cls._instance._initialized = False
return cls._instance
def __init__(self, plugin_dir: str = "plugins"):
"""

View File

@@ -76,7 +76,7 @@ class PluginManagerPlugin(MessagePluginInterface):
return False
# 创建插件管理器实例
self.plugin_manager = PluginManager()
self.plugin_manager = PluginManager().get_instance()
# 设置系统上下文
self.plugin_manager.set_system_context(context)