《iOS组件化》组件的划分

前言

组件的划分是在组件化之前最先要做的工作,也是非常重要的一环。组件划分不细致会造成很多冗余代码,或者划分的太细致则会加倍增加工作量。换句话说,组件的划分决定了整个工程的质量。
我会从以下几个方面来划分组件:

  • 基础通用组件
  • 基础业务组件
  • UI公共组件
  • 独立业务组件

基础通用组件的划分

我们这么来理解基础通用组件,变化不大,而且基本上每个项目都用到,项目中都要围绕这些组件来实现业务功能的组件。例如我们在Pods中的AFNetworkingSDWebImageFMDB,以及常用到的Category等。这些组件或许需要根据业务进行一些二次封装,但是每个项目中对它们的改动都不大。
使用第三方库应该尽量进行二次封装,封装更适用于业务的组件,或者封装成一个接口类,避免在换第三方库的时候整个工程逐句代码修改。下面有几篇关于基础组件封装的文章供大家参考:

  • 网络层 HKHttpManager
  • URL跳转路由 ALRouter
  • Category的设计AOP代替继承

基础业务组件

我们可以将类似用户行为统计异常上报推送服务消息通道支付通用宏定义头文件这种根据业务为基础的服务SDK作为基础业务组件,最好每个基础业务组件都各分其责,避免某些组件没用到某些功能而造成代码冗余。

UI公共组件

UI也有公共部分,建议在进行开发之前可以和设计师取一下经,或许他们已经做好了公共组件~这样划分根据他们的来就好了。

《iOS组件化》组件的划分_第1张图片
UI公共组件.png

UI组件种类繁多,大家记得根据 公共 的原则来抽离就行..

独立业务组件

根据业务的独立性来划分,例如我将我司的电商APP可以划分为首页组件购物车组件登录注册组件订单组件用户中心组件商品组件
独立组件一定要保证独立性,避免首页含有商品组件等这种情况,每个组件都通过Route来交互,必要时提供对应的接口。

总结

以上内容总结为下图,只要划分清晰了才能提高代码效率,组件化才有意义。

《iOS组件化》组件的划分_第2张图片
组件的划分.png

我的组件化系列文章:
《iOS组件化》组件化实践
《iOS组件化》创建公共/私有 Pods
《iOS组件化》之使用AOP代替继承
《iOS组件化》之 搭建适合业务的URL跳转路由-ALRouter
《iOS组件化》之搭建基于AFNetworking的网络请求框架

你可能感兴趣的:(《iOS组件化》组件的划分)