iOS:如何避免回调地狱?

时间:2017-01-21 00:51:33

标签: ios swift web-services callback data-access-layer

我正在设计我的数据&服务访问层,包含所有数据库,网络和解析逻辑。当然,我希望这是独立的。与我的UI代码分离,然后是演示文稿,业务层,最后是数据访问或服务访问层。

来自C#& JAVA背景我习惯了以下调用层次结构:

用户界面 - >演示 - >业务层 - >数据访问/服务访问

在线查看一些Swift编码模式,似乎可接受的方法是将UI回调一直传递到数据或服务访问层。

由于以下原因,这对我来说显然是违反直觉的,请随意评论我的观察结果:

  1. 必须通过堆栈中的每一层传递回调
  2. Business Layer可以为其他方法调用自身,同样每个被调用的方法都必须传递Callback
  3. 我的数据访问/服务层应该调用UI回调,这感觉很奇怪。
  4. Callback本质上是一个委托/功能指针,其类型在UI中定义,为什么我的数据和&服务访问层有任何知识(即使它只在方法/函数签名中)?这似乎违反了分离关注。
  5. iOS Swift中还有哪些其他方式或设计模式可以让我在不传递回调的情况下执行此操作?

0 个答案:

没有答案