模块与组件区别

组件和模块的区别

模块和组件都是封装特定功能一个集合。

模块是一个逻辑组织集合,用于管理代码的逻辑,把一个复杂系统代码组装成一个个模块,使代码逻辑清晰,易于维护扩展与复用。如财务模块,人力模块。

组件是一个物理上的组织集合,顾名思义,软件系统组件是系统的一个完整独立的部件。

例如,在下面的图中,我们展示了一组模块,其中每个模块嵌入了一组类:

在上图中,尽管类被分成多个模块,但它们并没有按照下面的截图进行物理分离。

例如,我们在应用服务器上部署了两个物理组件,

  1. MyWeb.war是Web层上的物理封装。
  2. MyEJB.jar是业务层上的物理封装。

软件抽象粒度层次结构

抽象的软件粒度层次如下:

想象一下,如果只是使用基本数据开发软件系统,代码是很难维护和阅读的。将小的、简单的、功能有限的、目的抽象的东西组合成更大的、更复杂的、功能更强的、目的更明确的东西。

将软件系统不同层次抽象出来使开发更容易,更快,更简单和更安全。

前端组件技术架构

软件组件化技术架构把复杂系统拆分成相互不依赖解耦的可复用的组件,不同团队或开发人员独立开发不同的组件,互不依赖,提高开发效率,降低维护难度。独立的组件自由组合就能形成一个完整的Web应用,降低了开发成本。

纵向组件

纵向组件关系是指从下到上的层级关系,下层组件服务于上层组件,上层组件引用了下层组件,上层组件包含下层组件子功能。例如表单组件,包含有下拉框组件、输入框组件、复选框组件。上下层次的组件是包含关系。

横向组件

横向组件是指把同层级的功能横向拆分成多个单一职责的独立组件。同层级的组件自由组合构成更大的功能。如考勤组件、审批组件、日程管理组件同一层次的组件横向组合成OA系统。同一层次的横向组件是同等关系。

前端组件库架构

如上图所示,类似化学中的有机物,原子组成分子,分子组成有机物。原子是化学变化中的最小粒子,分子是物质化学性质的最小粒子,有机物是有实际意义的物体。

目前比较流行组件库(Naive UI,Element,Ant Design)提供了上图中原子和分子的组件。原子有按钮、输入框、单选、标签等基础组件,分子有菜单、表格、列表、树等更大的组件。系统中有实际业务意义的组件包含了分子组件。

相关推荐
ღ_23331 小时前
vue3二次封装element-plus表格,slot透传,动态slot。
前端·javascript·vue.js
xiaohe06011 小时前
🔒 JavaScript 不是单线程吗?怎么还能上“锁”?!
javascript·github
摸着石头过河的石头1 小时前
JavaScript继承的多种实现方式详解
前端·javascript
Ashley的成长之路1 小时前
NativeScript-Vue 开发指南:直接使用 Vue构建原生移动应用
前端·javascript·vue.js
朕的剑还未配妥1 小时前
Vue 2 响应式系统常见问题与解决方案(包含_demo以下划线开头命名的变量导致响应式丢失问题)
前端·vue.js
JNU freshman2 小时前
Element Plus组件
前端·vue.js·vue3
软件技术NINI3 小时前
MATLAB疑难诊疗:从调试到优化的全攻略
javascript·css·python·html
知识分享小能手3 小时前
uni-app 入门学习教程,从入门到精通,uni-app组件 —— 知识点详解与实战案例(4)
前端·javascript·学习·微信小程序·小程序·前端框架·uni-app
长空任鸟飞_阿康3 小时前
在 Vue 3.5 中优雅地集成 wangEditor,并定制“AI 工具”下拉菜单(总结/润色/翻译)
前端·vue.js·人工智能
苏打水com3 小时前
从 HTML/CSS/JS 到 React:前端进阶的平滑过渡指南
前端·javascript·html