前端插件机制的设计理念

Posted 张驰Terry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端插件机制的设计理念相关的知识,希望对你有一定的参考价值。

插件概念

 

插件的本质在于不修改程序主体(平台)的情况下对软件功能进行扩展与加强

插件体系架构由两个核心的组件构成:核心系统和插件模块。其中最主要也是最关键的是允许向核心应用程序添加其它功能作为插件,从而提供可扩展性、灵活性及应用程序功能和自定义处理逻辑的隔离。

具体的规则处理核心系统是分开的,任何时候,我们都可以添加、删除和更改现有的插件,而对核心系统或其它插件毫无影响。

内核系统

核心系统最为插件架构的顶层设计,它定义了系统的的操作方式和基础业务逻辑。它是系统的抽象层,没有特定的实现及定制要求。

举一个简单的例子,例如:工作流引擎,它定义了应用程序内部的数据流方式。但是工作流中涉及的步骤取决于插件。因此,所有的扩展插件都将遵循通用的流程,以便提供其自定义的实现。

插件

插件是一个独立的组件 ,它包含独立的处理逻辑、附加功能和自定义代码,目的在于增强或扩展核心系统产生附加的功能。

通常来说,插件模块应该独立于其它 插件模块。但是,某些插件需要与其它插件进行通信或假定其它插件的存在。

无论哪种方式,保持通信和插件之间的依赖关系(耦合)到最小是最重要的。

内核 ←→ 插件

对于核心系统来说需要了解

  • 负责插件的加载、检测、初始化;
  • 负责服务的注册、调用;
  • 服务的管理。

核心系统定义了插件可连接的扩展点,而这些扩展点(钩子)通常表示核心系统的生命周期管理。

因此,每个插件都要将自己注册到内核中,并传递一些信息给外部知道,例如:插件名称、通信协议、输出/输出数据处理器,数据格式以及这些扩展点的钩子,就好像设计模式中的模版方法一样;

通常来说,内核和插件之间应该有一个明确的接口定义;

内核系统如何连接到这些插件完全取决于应用程序构建的类型(小型产品或大型业务应用程序)和用户特定的需求(例如:单机部署和分布式部署)。

以上是关于前端插件机制的设计理念的主要内容,如果未能解决你的问题,请参考以下文章

前端工程化-插件机制

前端工程化-插件机制

前端网红框架的插件机制全梳理(axioskoareduxvuex)

前端工程化系列[03]-Grunt构建工具的运转机制

前端之jQuery03 插件

几个网红前端库的核心实现机制深入解读,带你写的代码变得更强大