插件系统背后的逻辑?

时间:2010-05-08 20:32:09

标签: oop architecture plugins

我有一个PHP(私有CMS)应用程序,我想重写并添加一些新东西 - 我希望能够以更简单的方式扩展我的应用程序 - 通过插件

但问题是 - 我不知道如何实现“可插拔性”,如何使系统识别插件并将其注入应用程序?

那么,简单的插件系统的逻辑是什么?

1 个答案:

答案 0 :(得分:1)

通常插件都会实现一个通用接口。使用这些插件的应用程序将从存储库(例如目录中的库)加载每个插件,并使用公共接口与它们通信。您可以对此进行扩展,使插件从一组公共接口实现一个或多个。

困难包括确定定义哪个接口不仅适用于现在,而且适用于未来的插件。您还需要担心写得不好的插件。如果插件抛出异常会发生什么?或者,如果它停止响应。您是否应该允许性能不佳的插件关闭系统,或者是否应该与此隔离。