抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

我们公司养老业务线使用的组件化方案是 CTMediator ,而我在此之前没有了解过相关方案,借此机会学习 CTMediator 以及相关解耦措施。

组件与模块

“组件”强调的是复用,它被各个模块或组件直接依赖,是基础设施,它一般不包含业务或者包含弱业务,属于纵向分层(比如网络请求组件、图片下载组件)。

“模块”强调的是封装,它更多的是指功能独立的业务模块,属于横向分层(比如购物车模块、个人中心模块)。

模块化需要提供多个库之间的服务调用并保持库与库之间的独立、非强依赖。

总的来说,模块化的重点还是如何去除多个模块之间的耦合,让每个模块在不强依赖的情况下可以调用其他模块的服务。现在在开源的方案中有以下三种方案被广泛使用。

  • 利用 URL—Scheme 注册
  • 利用 Protocol-Class 注册
  • 利用 Runtime 实现的 Target-Action 方法

并各自有比较成熟的第三方库可供使用。

  • JLRoutes
  • routable-ios
  • HHRouter
  • MGJRouter
  • CTMediator

评论