网络层和持久层 业务层随笔

Controller其实是业务层,业务层内有数据展示和业务逻辑

网络层和持久层你统一为数据层没有问题。但是建议不要这么做,因为持久层除了数据存储,还会有一个弱业务Mananger,是DataCenter。网络层除了API调用,也会有一个弱业务Manager,也就是APIMananger。建议把持久层和网络层这两者分开,并列存在就行了。

之所以Controller必须使用Manager(APIManager或DataCenter)去访问对应数据,主要是为了强弱业务隔离,而且网络层和持久层只提供了这个操作入口给Controller,并没有提供其他乱七八糟的入口,这也是为了提高代码的可维护性。所以Controller只能使用Manager去操作时这个原因,跟跨层访问无关。

Manager这个封装很有用,Manager做的事情不止是单单的调用。网络层APIManager提供了参数生命周期管理,AOP拦截器,回调预处理,API调用信息管理,缓存管理,reformer机制的实现等等一系列功能,这一系列事情都不是应该丢到Controller去做的

由于iOS场景下,Controller其实是业务层,业务层里面有数据展示和业务逻辑,所以数据展示不能成为单独的一个层,因为需要业务层去调度,也就是Controller去调度。

推荐阅读更多精彩内容