来自bang's blog

http://blog.cnbang.net/tech/3080/

模块化

简单来说,模块化就是将一个程序按照其功能做拆分,分成相互独立的模块,以便于每个模块只包含与其功能相关的内容。比如登录功能可以是一个模块,搜索功能可以是一个模块.

组件化

通俗点就是:组件化就是基于可重用的目的,将一个大的软件系统按照分离关注点的形式,拆分成多个独立的组件,减少耦合。

模块化 vs 组件化

模块化?组件化?到底是什么鬼?有啥区别.

有这种感觉才是对的,模块化和组件化本质思想是一样的,都是”大化小”,两者的目的都是为了重用和解耦,只是叫法不一样.如果非要说区别,那么可以认为组件化粒度更小。按我理解组件是指比较小的功能块,这些组件不需要多少组件间通信,没什么依赖,也就不需要做什么其他处理,面向对象就能搞定。而较大粒度的业务功能,我们习惯称为”模块”。为了方便表述,平时模块和组件代表同一个意思。

大型项目模块化管理

随着iOS APP越来越复杂,功能越来越多,对于iOS项目的工程化要求也越来越高了,对于复杂的APP一般都需要对项目进行模块化管理。

模块化有几个方式:

1. 目录结构管理:这是最原始的方式,仅仅通过目录结构实现代码层次的清晰化。但本质上并没有解决代码之间的依赖混乱的情况,模块化划分也非常不清晰。

2. 子工程:通过子工程可以实现代码依赖管理和模块化,但是需要引入复杂的设置,不利于管理。

3. 静态库:将依赖代码打包成为静态库.a,不过由于不能看到源码,调试不方便。

自从有了CocoaPods,可以使用它来管理私有库,从而实现了代码模块化管理。例如下图所示:

最新文章

  1. SQLSERVER JDBC 存储过程调用偶尔很慢的原因之一【sp_sproc_columns】
  2. java 28 - 2 设计模式之 模版设计模式
  3. offsetParent详解
  4. Java中堆和栈的区别(转)
  5. Linux/Unix shell 自动发送AWR report
  6. 类似QQ的应用毗邻(Pilin)即时聊天源码
  7. 一张图解析如何让img垂直居中对齐
  8. 绘图工具graphviz学习使用
  9. Oracle EBS-SQL (PO-5):采购订单控制信息查询.sql
  10. BIEE在creating domain步骤停止的解决的方法
  11. Day3-递归函数、高阶函数、匿名函数
  12. 启动Tomcat提示:指定的服务未安装
  13. 华为OJ之自动售货系统
  14. jquery系列教程7-自定义jquery插件全解:对象函数、全局函数、选择器
  15. JSP的内置对象以及作用域。
  16. C语言第八次作业
  17. python——虚拟环境之pipenv的安装及使用(windows10,64位)
  18. slf4j的java包冲突问题
  19. Springboot监控之二:Spring Boot Admin对Springboot服务进行监控
  20. linux命令学习之:systemctl

热门文章

  1. CCF认证201712-1最小差值
  2. js遍历添加栏目类添加css 再点击其它删除css
  3. [修正] Firemonkey Windows & macOS 平台下 Edit & Memo 中文输入后会取消原选取文字的 BUG
  4. 第一篇 深入嵌入式之Linux裸机
  5. iOS Bugly符号化使用分析
  6. 利用IPC通道进行进程间通信(C#)
  7. Ajax第一天——入门与基本概念
  8. windowbuilder
  9. 2017-2018-1 20155210 《信息安全系统设计基础》 实现mypwd
  10. Open-Xml SDK使用介绍