美文网首页
模块间控制器跳转解耦(Target-Action方案)

模块间控制器跳转解耦(Target-Action方案)

作者: WQDev | 来源:发表于2018-12-13 17:12 被阅读0次

一、背景

项目开发中经常遇到一个界面跳转到其他模块界面场景,或者相互跳转,项目越来越大,代码耦合也越来越多,项目的耦合度不断增加。业务解耦尤为重要,本文主要讲解Target-Action方案的实现过程。

二、原理及实现

       使用OC的runtime运行时去查找类、方法的特性,具体调用流程如图,主界面使用分类分别跳转文件、视频模块,一个模块对应一个分类,图中FileModule、VideoMeeting分别是文件、视频模块的一个分类,主要是用来区分不同业务、为Mediator瘦身。这也是performTarget:action:params调了两次的原因。performTarget:action:params通过runtime找到对应的类(Target)以及方法(Action)后,具体创建对应的控制器。

为了方便理解,附上git Demo

相关文章

  • 模块间控制器跳转解耦(Target-Action方案)

    一、背景 项目开发中经常遇到一个界面跳转到其他模块界面场景,或者相互跳转,项目越来越大,代码耦合也越来越多,项目的...

  • 简单路由跳转

    当应用模块过多,各个模块可能会需要其他模块的跳转处理。模块间解耦,不需要再类中明确跳转目标的类名动态配置,业务需求...

  • Arouter路由总结

    总结 Arouter路由,跨模块页面跳转,拦截跳转过程,处理登陆埋点逻辑,控制反转做组件解耦。 1,在组件化和模块...

  • iOS 组件化(一)

    组件化 组件化就是将模块单独抽离,分层,通过制定的通讯方式,实现解耦 组件化优点 模块间的解耦 模块重用 提交团队...

  • ARouter源码解析

    如果应用项目要做模块化, 必然绕不开为了模块间跳转解耦而做的处理, 我们都知道一般都会采用路由模式, 本篇主要解析...

  • 手把手带你撸一个路由(1)--界面跳转

    路由存在的意义 模块间解耦,不需要再类中明确跳转目标的类名 动态配置,业务需求原因,部分诸如banner页等地方的...

  • ios swift URLNavigator 路由 的使用

    ios swift URLNavigator 路由 的使用 路由可以很大程度的对项目模块进行解耦;页面跳转有很多不...

  • iOS 模块化 [基于oc]

    CTMediator: 优点:协定了Target-Action 方式,避免来了业务代码之间污染,组件之间解耦,易于...

  • AntNest 模块完全解耦方案

    简介 AntNest 是吸收了 Go 语言的 Interface 模型的 iOS 的 App 模块化解耦编程的框架...

  • iOS 组件化(一)

    本文主要讲解组件化的两种方案 组件化 组件化其实就是将模块单独抽离、分层,并指定模块间的通讯方式,从而实现解耦的一...

网友评论

      本文标题:模块间控制器跳转解耦(Target-Action方案)

      本文链接:https://www.haomeiwen.com/subject/nmnvyxtx.html