编写高质量OC代码52建议总结:18.尽量使用不可变对象
来源:互联网 发布:java手机下载 编辑:程序博客网 时间:2024/06/02 19:28
一般情况下,我们需要建模的数据未必需要改变。具体到编程实践中,应该尽量吧对外公布出来的属性设为只读,而且只在有必要的时候才对外公布。如果试着改变属性值,编译器就会报错。对象中的属性值可以读取,但是不会写入。开发者在使用对象时就能确定其底层数据不会改变。
即使属性为只读(没有setter方法),也应该设置内存管理语义,如果以后想修改为读写属性,就会简单一些。
在对象外部仍可以通过“键值编码”方法设置这些属性。
对象里表示各种集合的那些属性究竟应该设成可变的,还是不可变的。
在这种情况下,通常应该提供一个只读属性供外界使用,该属性将返回一个不可变的集合,而这个集合是内部那份可变集合的拷贝。
总结:
1.尽量创建不可变对象
2.不要把可变的集合作为属性公开,应该提供相应的方法,以此修改对象中的可变集合。
即使属性为只读(没有setter方法),也应该设置内存管理语义,如果以后想修改为读写属性,就会简单一些。
在对象外部仍可以通过“键值编码”方法设置这些属性。
[object setValue:@"" forKey:@""];这样做等于违规绕过了本类所提供的API。
对象里表示各种集合的那些属性究竟应该设成可变的,还是不可变的。
在这种情况下,通常应该提供一个只读属性供外界使用,该属性将返回一个不可变的集合,而这个集合是内部那份可变集合的拷贝。
总结:
1.尽量创建不可变对象
2.不要把可变的集合作为属性公开,应该提供相应的方法,以此修改对象中的可变集合。
0 0
- 编写高质量OC代码52建议总结:18.尽量使用不可变对象
- 编写高质量OC代码52建议总结:1~8
- 编写高质量OC代码52建议总结:10.关联对象
- 编写高质量OC代码52建议总结:19.使用清晰而协调的命名方式
- 编写高质量OC代码52建议总结:27.使用“class-continuation 分类” 隐藏实现细节
- 编写高质量OC代码52建议总结:23.通过委托与数据源协议进行对象间通信
- 编写高质量OC代码52建议总结:9.以“族类模式“隐藏实现细节
- 编写高质量OC代码52建议总结:11.理解objc_msgSend的作用(消息机制)
- 编写高质量OC代码52建议总结:12.理解消息转发机制
- 编写高质量OC代码52建议总结:13.用“方法调配技术”调试“黑盒方法”
- 编写高质量OC代码52建议总结:16.提供“全能初始化方法”
- 编写高质量OC代码52建议总结:17.实现describtion方法
- 编写高质量OC代码52建议总结:20.为私有方法加前缀
- 编写高质量OC代码52建议总结:21.理解Objective-C的错误模型
- 编写高质量OC代码52建议总结:22.理解NSCopying协议
- 编写高质量OC代码52建议总结:26.不要在分类中设置属性
- OC阅读笔记一:尽量使用不可变对象
- 写高质量OC代码52建议总结:28.通过协议提供匿名对象
- .a的制作
- java源码-Boolean
- Deep Learning(深度学习)学习笔记整理系列之(一)
- 使用 Google Guava 美化你的 Java 代码:1~4
- LINUX下ECHO命令详解(转)
- 编写高质量OC代码52建议总结:18.尽量使用不可变对象
- 【C语言简单说】三:整数变量扩展和输出扩展(3)
- Android之RecyclerView轻松实现下拉刷新和加载更多
- R语言 时间序列ARIMA模型方法
- js中小细节注意
- hibernate中session的三种状态
- java面试集锦
- iOS 如何pop到指定页面
- 工资计算器的小demo