编写高质量OC代码52建议总结:18.尽量使用不可变对象

 一般情况下,我们需要建模的数据未必需要改变。具体到编程实践中,应该尽量吧对外公布出来的属性设为只读,而且只在有必要的时候才对外公布。如果试着改变属性值,编译器就会报错。对象中的属性值可以读取,但是不会写入。开发者在使用对象时就能确定其底层数据不会改变。
 即使属性为只读(没有setter方法),也应该设置内存管理语义,如果以后想修改为读写属性,就会简单一些。
 在对象外部仍可以通过“键值编码”方法设置这些属性。
 [object setValue:@"" forKey:@""];
 这样做等于违规绕过了本类所提供的API。
 
 对象里表示各种集合的那些属性究竟应该设成可变的,还是不可变的。
 在这种情况下,通常应该提供一个只读属性供外界使用,该属性将返回一个不可变的集合,而这个集合是内部那份可变集合的拷贝。
 
 总结:
 1.尽量创建不可变对象
 2.不要把可变的集合作为属性公开,应该提供相应的方法,以此修改对象中的可变集合。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值