知识卡片
计算属性体现统一访问原则
内容
计算属性不占用存储空间,每次访问时临时通过 get/set 代码块算出值,但从调用方视角看,读写一个计算属性和读写一个真正存了值的存储属性写法完全一样,都是”对象.属性名”。这意味着一个类型内部可以自由决定某个字段是直接存起来还是靠其他字段实时算出来,调用方完全不需要关心也不需要因为这个实现细节的变化而修改自己的代码。发散:这就是”统一访问原则”(属性的读取方式不应该暴露它到底是存储的还是计算的)在 Swift 里的体现,好处是把”要不要缓存这个值”这种纯粹的内部实现选择,和”外部怎么用这个属性”这件事彻底解耦。
参考来源
《Swift全解析:新式iOS实战开发》第11章《Swift属性》