Java开发工程师理解的三种架构模型—— “框架+插件”架构

杰米粉2021-11-16 14:31

  经典的3/N层架构是对系统进行“纵向”分层,而“框架+插件”架构对系统进行“横向”分解。3/N层架构和“框架+插件”架构处于一个平等的位置,它们没有任何依赖关系。

Java开发工程师理解的三种架构模型—— “框架+插件”架构

  但是我经常将它们结合在一起使用,我们的系统在经过3/N层架构的纵向分层和“框架+插件”架构的横向分层后,可以被看作一个“网格”结构,其中的 某些网格可以看作是“扩展点”,我们可以在这些扩展点处挂接“插件”。也就是说我们可以在3/N层架构的每一层都挂接适当的插件来完成该层的一些功能。 如:

Java开发工程师理解的三种架构模型—— “框架+插件”架构

  插件最主要的特点是可以实现“热插拔”,也就是说可以在不停止服务的情况下,动态加载/移除/更新插件。所以,采用插件技术可以实现以下功能:

  (1)在UI层,我们可以在运行时,替换掉某些用户界面、或加载与新的业务相关的用户界面。在业务逻辑层,我们可以在运行时加载、替换或者删除某项业务服务。在数据访问层,通过使用插件技术我们可以动态地添加对新的数据库类型(如MySQL)的支持。

  插件的“热插拔”功能使得我们的系统有非常好的可扩展性。

  (2)如果我们需要升级系统,很多情况下,只要升级我们的插件(比如业务插件)就可以了,我们可以做到在服务运行的时候进行插件的自动升级。

  (3)要想将系统做成“框架+插件”的结构,要求我们需要在系统的各层进行“松耦合”设计,只有松耦合的组件才可以被做成“插件”。

  在3/N层架构中融合“框架+插件”架构,最难的是对业务逻辑层的松耦合处理,这需要我们细致分析业务需求之间的关联,将耦合度紧密的业务封装在一个组件中,如此得到的相互独立的业务组件便可以有机会成为插件。这个过程可能需要不断的重构、设计的重构。

  我们知道,相比于那些紧密耦合的组件,松耦合的组件更加清晰明确、更加容易维护。另外,在该架构模型中引入了AOP框架进行Aspect焦点的集中 编程(比如处理日志记录、权限管理等方面),使得Aspect代码不会掺杂在正常的业务逻辑代码中,使得代码的的清晰性、可维护性进一步增强。

  从上述介绍可以看出,采用3/N层架构和“框架+插件”架构相结合,我们可以增强系统的可扩展性、可维护性和简单部署升级的能力。

  以上就是小编为大家整理发布的“Java开发工程师理解的三种架构模型—— “框架+插件”架构”一文,更多相关内容尽在开课吧广场Java教程频道。

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享