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

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