模块化封装和组件化封装
1.概念
组件化是把重复代码进行封装,例如util
类的封装。
模块化是指把一组功能进行隔离,可以独立运行,独立管理,例如login
(登录)和home
(首页)。
组件化开发的原则
- 专一
- 可配置性
- 标准性
- 复用性
- 可维护性
2.区别
组件:重用、解耦;高重用、松耦合;无统一接口;基础库、基础组件;纵向分层
模块:隔离、封装;高内聚、松耦合;统一接口;业务框架、业务模块;横向分块
3.为什么要使用组件化和模块化?(优势)
1.开发和调试效率高:随着功能越来越多,代码结构会越发复杂,要修改某一个小功能,可能要重新翻阅整个项目的代码,把所有相同的地方都修改一遍,重复劳动浪费时间和人力,效率低;使用组件化,每个相同的功能结构都调用同一个组件,只需要修改这个组件,即可全局修改。
2.可维护性强:便于后期代码查找和维护。
3.避免阻断:模块化是可以独立运行的,如果一个模块产生了bug,不会影响其他模块的调用。
4.版本管理更容易:如果由多人协作开发,可以避免代码覆盖和冲突。
3.1模块化的优点(好处)
- 每个模块也可以理解为一个单独的系统,可独立工作,即便单组模块出现故障也不影响整个系统工作;
- 和组件化一样,模块也可以进行复用,提高了代码的可复用性;
- 由于每个模块可以独立运行,可以多团队并行开发和测试,提高了开发效率。
3.2组件化的优点(好处)
- 常用的功能封装起来之后,一个显而易见的优点就是提高了代码的可复用性,这个可复用性不仅仅是对于当前项目的,以后其他项目需要时也可以直接移过来;
- 当组件需要进行升级时,只要修改一次,提高了代码的可维护性和扩展性;
- 有些组件的功能是比较复杂的,维护时比较麻烦,而组件化则可以隔离复杂度,把高复杂度的代码隔离起来,易于维护和重构;
- 组件与组件之间联系很少,从而降低耦合度,当由于需求的变更替换某个组件时,可以马上替换,不用担心影响其他部分的功能。
模块化封装和组件化封装相关推荐
- App-UI自动化测试-PO模式/组件化封装
1.PO模式 具体什么是PO模式就不用详细介绍了,web自动化测试已经介绍过了,详细内容可参考此篇文章中的4.3.2UI自动化测试介绍_晒不黑的黑煤球的博客-CSDN博客_ui自动化测试 我这里新建了 ...
- 使用Retrofit2封装适用于组件化项目的网络库
版权声明:本文为博主原创文章,未经我的允许不得转载! 转载请标明出处: http://blog.csdn.net/guiying712/article/details/74427258 ,本文出自:[ ...
- android pod 组件化_使用 Pod 实现私有模块化管理(组件化 Pods 实现方案)
概况 众所周知组件化是个好东西,它把项目拆分成多个模块,让每个模块能够独立出来解除各个模块之间的耦合性,作为每个独立的模块不仅仅能够使用组合的方式去组建各个不同的功能组合(前提是各个组件划分的颗粒度只 ...
- 模块化开发,组件化开发定义及其区别
组件化: 小型组件组成中型组件,中型组件组成大型组件.在整个系统的代码层次上位于最底层,被其他代码所依赖,所以说组件化是纵向分层. 组件化是指一个一个的功能,一个组件包含html,css,js,简单来 ...
- Android RecyclerView (十)组件化封装
pullrefreshrecyclerylib 开发文档 GitHub项目地址 点击查看详情 下拉刷新 上拉加载更多 多布局模式适配 加载中状态 加载无数据状态 1 工程添加依赖 使用前先去GitHu ...
- 【数据结构】链表的增删改查| 组件化封装
创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>
- java项目中可以封装的组件_封装属于自己的组件库
封装属于自己的组件库 - VUE 「适合人群:一起聊聊组件这件事」 「观看时间:30min」 「说明:一些经验分享,欢迎探讨」 前言 现目前,vue 社区下大大小小的组件库是越来越多,优秀的开源组件也 ...
- 前端模块与组件、模块化与组件化编程
文章目录 前言 1.前端模块化 2.前端组件化 一.模块与组件的理解,存在的意义以及作用 1.模块 2.组件---实现应用中局部功能代码和资源的集合 2.1 单文件组件与非单文件组件 二.模块化与组件 ...
- 前端模块化、组件化理解
前端模块化.组件化理解 随着前端项目规模的增大,我们要考虑提高开发效率,增加代码复用,以及降低模块功能耦合等问题. 模块化 模块化是软件工程中的一种思想,将大的问题拆解细分成一个个小问题,然后分而治之 ...
最新文章
- 用c# 实现设计器 DesignSurface
- 【GoLang】GoLang 遍历 map、slice、array方法
- 深度学习在CTR预估任务中的应用
- 《3》CentOS7.0+OpenStack+kvm云平台部署—配置Glance
- Python学习17 Turtle库绘图
- LeetCode 1534. 统计好三元组
- C#颜色和名称样式对照表
- jqGrid colModel 参数(来自中文手册)
- STM32:定时器中断与优先级
- js swipe 图片滑动控件实现 任意尺寸适用任意屏幕
- 使用IPV6 ACL对telnet登陆进行限定
- Android EventBus现实 听说你out该
- 爬取豆瓣电影top250
- STM32CubeMX GPIO模拟I2C读写M24C64
- 物联网嵌入式开发平台和开发流程
- 修改 Windows 10 主题字体
- 微博登录账号密码终于又找回来了。Mark一下
- ExifTool 抽取、修改Image tag 信息
- EasyExcel3.0.5 导出多个sheet,批量下载打包成ZIP压缩包
- matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色
热门文章
- python用matplotlib画玫瑰_Python可视化:用Matplotlib画个玫瑰图
- Mysql操作联系题
- 【pgsql】使用<foreach></foreach>处理数组或对象数组时的循环操作
- 无线通信模块行业介绍
- 数字图像处理论文解读- 双边滤波效果 - Bilateral Filtering for Gray and Color Image
- 构建宽带城域网的基本技术与方案
- MonoDETR:用于单目3D检测的深度感知transformer(CVPR2022)
- 什么样性格的人适合科研_什么性格的人更容易得癌症?科学研究这么看
- 【如何3秒钟看出一个人的python实力|Python 数据分析打怪升级之路 day04】:手把手教你如何分析用户数据、数据分析基本概念
- Android U盘插拔监听详细版以及U盘写入权限解决办法