模块管理优化
This commit is contained in:
@@ -13,7 +13,32 @@ from plugin_common.event_system import EventSystem, EventType
|
|||||||
|
|
||||||
|
|
||||||
class PluginManager:
|
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"):
|
def __init__(self, plugin_dir: str = "plugins"):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ class PluginManagerPlugin(MessagePluginInterface):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
# 创建插件管理器实例
|
# 创建插件管理器实例
|
||||||
self.plugin_manager = PluginManager()
|
self.plugin_manager = PluginManager().get_instance()
|
||||||
# 设置系统上下文
|
# 设置系统上下文
|
||||||
self.plugin_manager.set_system_context(context)
|
self.plugin_manager.set_system_context(context)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user