就性能和资源而言,Swift中的属性观察器到底有多昂贵?我对比较设计模式非常感兴趣,MVVM模式引起了我的怀疑,因为它大量使用了属性观察器。像自然界一样,编程中没有免费的午餐,如果有些事情看起来太不真实了,那么就必须进行一些重大的权衡。
例如,如果随机对象(例如视图控制器)中的属性发生更改,则属性观察器可以捕获该更改,并将通知发布到侦听该通知的任何对象(无论“遥远”)。这似乎太好了,难以置信,它可以完全替代委托的需要。因此,如果我们对整个应用程序中的每个资源都执行此操作,那么总体性能/资源成本将是多少?
由属性观察者紧密绑定在一起的对象创建两倍数量的对象(每个现有视图控制器一个额外的视图模型)的模式是否完全违背了松散耦合的做法?