当前位置: 首页 > news >正文

【软件设计】架构设计 分析组件化与模块化之间的区别

前言

        组件化与模块化已经深入体现到软件开发当中,也是为了让开发者更好的去解决软件上的高耦合、低内聚、无重用的3大代码问题。在写这篇文章之前,我也百度过很多相关介绍文章,各个作者都有自己的一些想法或者总结,所以当时看得比较乱,在实践过程中也存在不少疑惑(很多时候不知道选择用组件还是模块,或者有时候根本分不清自己这得是组件还是模块。云里雾里~~)。因此为了解决这些疑惑帮自己统一了组件化与模块化的使用方式与概念、定位。

概念

     组件化 

        就是"基础库"或者“基础组件",意思是把代码重复的部分提炼出一个个组件供给功能使用。

        使用:Dialog,各种自定义的UI控件、能在项目或者不同项目重复应用的代码等等。

        目的:复用,解耦。

        依赖:组件之间低依赖,比较独立。

        架构定位:纵向分层(位于架构底层,被其他层所依赖)。

     模块化 

        就是"业务框架"或者“业务模块",也可以理解为“框架”,意思是把功能进行划分,将同一类型的代码整合在一起,所以模块的功能相对复杂,但都同属于一个业务。

        使用:按照项目功能需求划分成不同类型的业务框架(例如:注册、登录、外卖、直播.....)

        目的:隔离/封装 (高内聚)。

        依赖:模块之间有依赖的关系,可通过路由器进行模块之间的耦合问题。

        架构定位:横向分块(位于架构业务框架层)。

总结

           其实组件相当于,把一些能在项目里或者不同类型项目中可复用的代码进行工具性的封装。

           而模块相应于业务逻辑模块,把同一类型项目里的功能逻辑进行进行需求性的封装。

 
链接:https://www.jianshu.com/p/cac0beae8876

相关文章推荐:http://www.xueui.cn/design-theory/shejiyuanze/differences-between-componentization-and-modularization.html

各种软件开发系统架构图案例:https://max.book118.com/html/2018/1128/8026065006001135.shtm

https://wenku.baidu.com/view/c144f6315b0102020740be1e650e52ea5518ceca.html

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【word】word 笔记
  • 【前端】webpack、npm、node、nodejs之间的关系
  • 【Vue】前端的单页面模式和多页面模式
  • 【软件架构】运用RUP 4+1视图软件架构设计(逻辑视图、实现视图、进程视图、物理视图和用例视图)...
  • 【软件架构】软件的设计图纸(用例图,类图,状态图,活动图,顺序图)
  • 【nginx】linux nginx 部署静态网页
  • 【servlet】servlet技术是否过时?
  • 【vue】vue.js不就是一个文件吗?安装vue是什么意思?
  • 【Vue】Vue引入bootstrap的方法
  • 【vue】vue发布
  • 阿里云ECS端口8080访问不了问题排查
  • 【网络】ECS 8080端口连接拒绝问题排查(服务器外网无法访问原因)
  • 【springBoot】SpringBoot入门最详细教程---研习
  • 【springBoot】controller,service,dao,mapper,model层的作用
  • 【springboot】什么是依赖注入
  • [数据结构]链表的实现在PHP中
  • [译]如何构建服务器端web组件,为何要构建?
  • 【刷算法】从上往下打印二叉树
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • IDEA 插件开发入门教程
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • Java面向对象及其三大特征
  • Redis的resp协议
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 入门到放弃node系列之Hello Word篇
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 一、python与pycharm的安装
  • nb
  • ​如何防止网络攻击?
  • ###STL(标准模板库)
  • (12)目标检测_SSD基于pytorch搭建代码
  • (16)Reactor的测试——响应式Spring的道法术器
  • (a /b)*c的值
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (算法)大数的进制转换
  • (算法二)滑动窗口
  • (学习日记)2024.01.19
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET DataGridView数据绑定说明
  • .net mvc部分视图
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .NET值类型变量“活”在哪?
  • ::前边啥也没有
  • :如何用SQL脚本保存存储过程返回的结果集
  • @Autowired注解的实现原理
  • @EnableWebMvc介绍和使用详细demo
  • [Bugku]密码???[writeup]
  • [C#]winform制作仪表盘好用的表盘控件和使用方法
  • [EFI]Dell Inspiron 15 5567 电脑 Hackintosh 黑苹果efi引导文件