组件化浅析

一、简单介绍

其实在日常生活中有着各行各业其实都在使用者组件化这个概念,比如说在汽车行业中台式电脑进行组装其实就很好的运用到组件化这个概念。

二、功能介绍

使用组件化的好处其实就是当我们在做大型的商业项目的时候,其实如果我们不去用一个组件化,其实是会代码越写越多,业务逻辑会很复杂很复杂,所以我们完全可以拆成一个一个的组件来进行组合。如果我们的项目不是很大其实就没有必要去使用组件化了。使用组件化我们也可以让代码的耦合性降低。就比如说我们有个库,有一天我们发现它有bug了,而这个时候依赖于这个库的其他业务逻辑有很多,那么他们肯定也会受到影响,所以我们最好是进行一个组件化的拆分,每一个组件的bug都有相应的人去解决。我们最后也可以把每一个组件写成二进制的形式。

还有就是使用组件化会方便我们进行测试,我们每个组件可以单独拿出来进行测试,因为关于组件化其实我们大多都是配合着CocoaPods来进行使用,而且每个组件我们一般都是去放到远程的私有的索引库里面,所以我们完全可以再进行pod install进行下载下来。


我们在使用组件化其实是分块的,一个是基础组件,一个是功能组件,还有一个就是业务组件。

基本组件的话其实就是一些我们自己写的分类啊,AFN的网络工具类等等的

功能组件 功能组件里面包含了各种功能模块就比如说一些UI的设计之类的,轮播器,网络框架等

业务组件就是一些基本的业务的处理了就比如说登录那块的业务还有聊天啊等等。

我们的业务组件肯定也是可能会去使用到基础组件那一块的。还有就是功能组件也是可能会用到基本组件的比如一些尺寸的设置。

如果我们在做功能组件的时候发现会去用到基础组件,但是这个基础组件里面我们所能用到的东西不多,那么我们最好自己去写一个实现我们所需要的功能的类,最好不要去依赖这个基础组件了。

还有就是其实我们两个业务组件之间也是有可能会产生联系的,这样他们之间就会存在一个依赖关系。

所以我们最好去使用一个中间层,也就是路由(router)的概念了,来解决它们自己的依赖关系,就比如说有业务A和B

A需要某些B中的逻辑,所以我们就可以去写一个中间层,在这个中间层中进行封装B的部分接口出来,让A和这个中间层进行交互。


组件化的优点就在于

         1、降低耦合度

         2、组件可以单独开发,单独测试

         3、可以多人进行协作开发

三、概念联想

其实包括操作系统其实也是采用的一种模块化的理念的,操作系统的模块化有很多种方法,其中一种是分层法,就是把操作系统分成若干层。最底层为硬件,最高层是用户接口。分层法中的每一层能利用较低层的功能和服务,比如第一层能够先调试而不需要考虑系统的其他部分,在第一层调试了之后,就可以认为它是可以正常运作的,然后我们再去调试第二层,这样继续进行下去,如果在调试特定层的时候发现了错误,那么这个错误必然是在这一层的,因为层次是一级一级的往上了,我们对每一层都是调试了,然后再往上走的。所以错误的定位也是比较方便的。

这里面的分层结构其实和组件化也是类似的,就好比我功能组件需要调用基础组件,然后我们写基础组件的时候就可以先进行调试,然后提供接口给外界,这样也简化了开发流程。

还有就是这里组件化还用到了模块化的概念,因为如果我们光分层的话,就相当于是只是由众多的过程直接构成,就比如说笼统的来讲,我对我们的代码就分为三大块,那么每一块的代码量都是巨大的,耦合度高。

所以我们需要进行对每一层按照其功能进行划分为若干个具有一定独立性和大小的模块。每个模块具有某方面的管理功能,并仔细地规定好各模块间的接口,使各模块之间能通过该接口实现交互。然后,再进一步将各模块细分为若干个具有一定功能的子模块之间的接口。若子模块较大时,可再进一步将它细分。

其实除了操作系统的设置还有CPU的设计也是用到了这样组件化的概念的,比如说在CPU中有一部分负责控制、一部分负责执行、一部分则负责存储,它之间进行交互以及接口通信则总是通过总线来完成,CPU内部主要由控制器、运算器和寄存器组成。控制器负责指令的读取和调度,运算器负责指令的运算执行,寄存器负责数据的存储,它们之间通过CPU内的总线连接在一起。

对于模块的划分我们要遵循高内聚,低耦合的原则。高内聚指的就是一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。低耦合指的就是一个软件结构内不同模块之间互连程度要低。不要依赖性太强。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值