iOS开发-浅谈组件化方案

本文介绍了iOS开发中的组件化概念,探讨了组件化的发展历程和业界常见的组件化方案,包括基于路由URL的UI页面管理、反射接口调用、面向协议的服务注册以及通知广播。文章通过对比各种方案的优缺点,帮助开发者理解如何选择合适的组件化策略。
摘要由CSDN通过智能技术生成

在这里插入图片描述

最近在学习组件化的一些方案。这里收集消化了一下,分享给大家参考。

组件化是架构层面的一个概念,它把项目按照某些规则(比如:按功能、按业务)划分成若干个颗粒度较小的单位,我们把这些单位称之为组件,或者是模块,来达到优化项目结构的目的。

组件又可以细分为 功能组件(如:图片库,网络库),业务组件也叫模块(如:订单模块,个人中心模块)

功能组件主要是物理层面的拆分,方便以后的复用

业务组件强调逻辑拆分,以便解耦

组件化的发展历程

开发之初,在功能方面,我们会把项目划分为基础层网络层数据层等等,而业务层面,仅仅是按照目录结构做一个简单的模块分层,比如订单模块个人中心模块

注:因为功能组件被大部分业务模块所依赖,这里暂时不讨论功能模块的架构问题。

随着业务的发展,项目变的越来越复杂,APP内各个业务之间的耦合严重,边界越来越模糊,经常会出现你中有我,我中有你的情况,如图

在这里插入图片描述

可以看到,模块与模块严重耦合,对代码的扩展,以及代码的开发效率造成了巨大影响,有一种改一处动全身的感觉。发展到这个阶段,我们会把各个模块分割开来,通过中介者来完成不同模块之间的交互。如图

在这里插入图片描述

这个时候,架构看起来是清晰了许多。但因为中介者任然反向依赖业务模块,任然存在改一处多个模块受影响的情况,依赖仍旧是双向的。我们举个例子:

假如我现在在会员模块,要跳入到商品模块,此时,会员模块需要通过中介者来完成跳转


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值