大家好,目前公司 iOS 项目架构上遇到一些问题,虽然也看了不少架构文章,也准备着手优化架构上存在的一些问题,但总有那么一丢丢犹豫不定或者解决不了的,想在这里从 iOS 大神们得到一些建议和帮助。
首先说下目前架构,典型的 MVCS ,最后的 S 是数据存储层, M 层是瘦 Model ,只用来表达数据的外观, C 和 V 比较经典,之所以使用 MVCS ,第一是觉得上手比较容易,分层明确。第二是觉得瘦 Model 和减少 C 的复杂度是一个项目走向复杂和可扩展的出路。
但目前实践过程中遇到一些问题,下面列出来:
1 、 S 层不单只做了存储,还负责作为数据源提供给 C 层,除此之外还负责从网络层获取数据,也就是变成了半个业务层。
2 、由于上面 1 的问题(数据源),导致类似分页的 pageIndex , pageSize 也放进了 S 层,虽然 C 层是舒服了,但 S 层免不了开始容易出错并不好找错,虽然根据业务和模块有很多的 S 类,但还是觉得不对劲。
3 、跨层调用使用通知,发现不好统一管理,代码乱飞。
想问下,我应该怎么处理以上问题,我提出几个比较困惑的问题:
1 ) S 层能否作为数据源提供数据给 C?,业务层(部分模块很复杂)放在哪里会比较合适?
2 )类似分页的 pageIndex , pageSize 该放进业务层还是 S 层、 C 层?
3 )跨层调用想过 KVO+观察者模式,但目前数据源在 S 层,无法方便的解除观察,还是说把业务逻辑回归 C?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.