class PluginSystem {
constructor() {
this.plugins = {};
}
// 注册插件
registerPlugin(pluginName, plugin) {
if (!this.plugins[pluginName]) {
this.plugins[pluginName] = plugin;
console.log(`Plugin ${pluginName} registered.`);
} else {
console.log(`Plugin ${pluginName} already exists.`);
}
}
// 激活插件
activatePlugin(pluginName) {
if (this.plugins[pluginName]) {
if (this.plugins[pluginName].init) {
this.plugins[pluginName].init();
console.log(`Plugin ${pluginName} activated.`);
} else {
console.log(`Plugin ${pluginName} has no initialization function.`);
}
} else {
console.log(`Plugin ${pluginName} does not exist.`);
}
}
// 配置插件
configurePlugin(pluginName, config) {
if (this.plugins[pluginName]) {
if (this.plugins[pluginName].configure) {
this.plugins[pluginName].configure(config);
console.log(`Plugin ${pluginName} configured.`);
} else {
console.log(`Plugin ${pluginName} does not support configuration.`);
}
} else {
console.log(`Plugin ${pluginName} does not exist.`);
}
}
}
// 使用示例:
const myPluginSystem = new PluginSystem();
// 注册一个插件
myPluginSystem.registerPlugin('greetingPlugin', {
init: function() {
console.log('Greeting plugin initialized!');
},
configure: function(config) {
console.log(`Greeting message set to: ${config.message}`);
},
greet: function() {
console.log('Hello from greeting plugin!');
}
});
// 激活插件
myPluginSystem.activatePlugin('greetingPlugin'); // 输出: Greeting plugin initialized! 和 Plugin greetingPlugin activated.
// 配置插件
myPluginSystem.configurePlugin('greetingPlugin', { message: 'Hello, World!' }); // 输出: Greeting message set to: Hello, World! 和 Plugin greetingPlugin configured.
简单的插件系统
最新推荐文章于 2024-07-19 12:58:53 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)