我正在一个项目的逻辑架构中工作,该项目从用户那里接收一些信息并对其进行处理。要求之一是为外部开发人员公开一个接口以添加更多功能。到目前为止,我已经提出了一个 MVC 2 层架构,其中 View 和 Controller 运行在用户的机器中,而 Model 托管在应用程序服务器中并远程调用。对功能的要求建议我使用插件模式。
处理信息时可能会执行用户选择的其他步骤,因此我想将它们建模为应用程序发布时已经存在的插件。这意味着这个插件会影响同一个资源(处理流程),我不确定当两个插件都启用时如何处理这个问题。
由于我对插件模式不像其他模式那样熟悉,所以我在询问之前所做的阅读让我尝试了类似于抽象工厂模式的东西。问题是,当启用两个或更多插件时,我需要多重继承。我还想到了 Builder 模式来分别对处理步骤进行建模,但是必须定义插件之间的顺序,这会影响插件开发人员的独立性。