首页 存档 技术 查看内容

路由跳转的思考 业务需要 结构梳理 URLRoute 中间人 基于中间人的URLRoute VKURLActio ...

2018-3-30 13:00 |来自: 互联网 347 0

摘要: 开发者(KaiFaX) 面向开发者、程序员的专业平台! 业务需要 一切脱离业务需求的“结构”设计都是耍流氓(我觉得我们这小打小闹完全谈不上架构这个词) 那我们先梳理一下我们现在的业务场景 目前我们有一个首要 ...

开发者(KaiFaX

面向开发者、程序员的专业平台!


业务需要

一切脱离业务需求的“结构”设计都是耍流氓(我觉得我们这小打小闹完全谈不上架构这个词)


那我们先梳理一下我们现在的业务场景


目前我们有一个首要问题是跳转


  • ●书架banner是个运营位置,需要灵活可配的各种跳转

  • ●开机弹框也是个运营位置,依然需要各种跳转

  • ●push,更别说了,各种跳转

  • ●H5书城,运营活动H5落地页,通过Bridge还需要各种跳转


我们现在是怎么做的呢?拿书架banner举例


服务器会下发一个type号,(随便假设)1代表打开webview,2代表打开图书,3代表打开个人中心…等等,相关参数会随着type的不同,下发不同字段,因此代码会长这样

switch(type){
case1:
{
/ingcode
NSString*url=/*解析对应url字段*/
NSString*title=/*解析对应title字段*/
NSString*ydwebview=[[ydwebviewalloc]init];
ydwebview.url=url;
ydwebview.navititle=title;
[self.navigationControllerpushViewController:ydwebviewanimated:YES];

}

break;

case2:
{
//balabalaba
}
break;


可以看下我们的switch有多恐怖


  • ●书架banner跳转有6个switch,其中第一个switch有4种子switch

  • ●开机弹窗有2个switch,支持能力弱

  • ●push,这可了不得有20个switch

  • ●H5bridge跳转,有10 个switch


那我们每次新增加一个功能模块的时候改怎么办呢?


假设新作一个模块叫”英式没品笑话百科”(我很爱看的一个微博号(_))


我们就需要在书架,弹框,push,H5Bridge,四处核心跳转点全都新增代码,先要import “EnglishJoke.h”,然后还要新增一个switch,新增一坨跳转viewcontroller的代码


有没有感觉?what the fuck!


我们的代码就好像是这样,一团乱麻。

假如A模块是书架,它本身含有书架banner的跳转代码,所以他需要耦合各种跳转目标。比如跳转到B模块书城,形成了 A==

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部