所以在我的应用程序中我有以下情况:
BackendCommunicatingClass - > (拥有) - > ModelClass - > (拥有) - > HomescreenViewController
当应用程序第一次启动时,我也会这样:
WelcomeViewController - > (拥有) - > HomescreenViewController
当用户在WelcomeViewController中键入用户名和密码时,此信息需要一直到BackendCommunicatingClass,然后一直回到WelcomeViewController以显示错误(如果需要)。现在我已经通过将信息传递给通信链中的每个类来实现这一点,直到它到达BackendCommunicatingClass。结果是很多重复的协议方法,我觉得我做错了。
您怎么看?
答案 0 :(得分:1)
我明白这不是最清晰的解决方案,但是如果没有查看代码和程序的目的,这就是我的建议。
听起来可能很复杂,但KVO和通知很容易实现,网上有很多文档和教程。
答案 1 :(得分:0)
如果这些委托协议提供的内容有一个明确的1:1映射,并且委托不处理UI内容,除了直接拥有的视图控制器之外什么都不应该关注,你可以将委托传递到结尾链并将其直接设置为委托。这就是委托的目的 - 能够让一个不关心的对象与另一个对象进行通信。
也就是说,根据您的分层策略的严格程度,您可能更愿意通过拥有不同的委托来在每个步骤封装信息。