我是开发中的新手,最近正在练习MVVM设计模式。为了在ViewModel和Controller之间进行通信,我正在使用Closure。我知道我也可以使用代理。但是,有任何约定或原因,我应该采用哪种特定的方式进行沟通。我有点困惑。任何帮助将不胜感激。
最佳答案
我也在寻找这个答案,我已经找到了,
从UI层(UIL)到业务逻辑层(BLL)传递闭包将破坏关注分离(SOC)。您正在准备的数据驻留在BLL中,因此从本质上讲您会说“嘿BLL为我执行此UIL逻辑”。那是SOC。 (在此处查找更多https://en.wikipedia.org/wiki/Separation_of_concerns。)
BLL应该仅通过委托(delegate)通知与UIL通信。这样,BLL实质上就是说:“嘿,UIL,我已经完成了执行逻辑,这是一些数据参数,您可以根据需要使用这些数据参数来操纵UI控件”。
因此,UIL永远不要让BLL为他执行UI控制逻辑。应该只要求BLL通知他。
这是链接,您将获得更清晰的 View 。
Usage of MVVM in iOS
关于ios - 在ViewModel和Controller之间进行通讯的最佳方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44614910/