一切脱离业务需求的结构设计都是耍流氓(我觉得我们这小打小闹完全谈不上架构这个词) 那我们先梳理一下我们现在的业务场景 目前我们有一个首要问题是跳转
我们现在是怎么做的呢?拿书架banner举例 服务器会下发一个type号,(随便假设)1代表打开webview,2代表打开图书,3代表打开个人中心…等等,相关参数会随着type的不同,下发不同字段,因此代码会长这样 switch (type) { case 1: { //jumping code //NSString *url = /*解析对应url字段*/ //NSString *title = /*解析对应title字段*/ //NSString *ydwebview = [[ydwebview alloc]init]; ydwebview.url = url; ydwebview.navititle = title; [self.navigationController pushViewController:ydwebview animated:YES]; } break; case 2: { //balabalaba } break; 可以看下我们的switch有多恐怖
那我们每次新增加一个功能模块的时候改怎么办呢? 假设新作一个模块叫”英式没品笑话百科”(我很爱看的一个微博号╮(╯_╰)╭) 我们就需要在书架,弹框,push,H5Bridge,四处核心跳转点全都新增代码,先要 有没有感觉?what the fuck! 我们的代码就好像是这样,一团乱麻。
假如A模块是书架,它本身含有书架banner的跳转代码,所以他需要耦合各种跳转目标。比如跳转到B模块书城,形成了 A==>B 假如B模块是书城,它本身含有书城H5Brdige的跳转代码,所以他也需要耦合各种跳转目标,比如跳转到A模块书架,形成了 B==>A 假如所有模块都有这种蛋疼的跳转其他模块的需求,他们之间相互跳来跳去(没错,有时候需求就是这么的不讲道理),那么我们的代码结构就会如图一样,随着业务结构的逐渐庞大,就会变成一张复杂的蜘蛛网,难以维护。 结构梳理仔细思考一下,我们的业务需求的最直接痛点所在就是
但是面对这种当引用耦合一团乱麻的情况下,在业务逐渐壮大,我们面对着一张复杂的如同蛛网一般的引用关系的时候,我们又该如何去处理? 其实有两种方案,都在被普遍使用
|
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|