【Effective Objective-C 2.0 读书笔记】第十八条:尽量使用不可变对象

第十八条:尽量使用不可变对象

设计类的时候,应充分运用属性来封装数据。

在使用属性时,则可将其声明为“只读”。

默认情况下,属性是“既可读又可写的”,这样设计出来的类都是“可变的”(mutable)。

不过一般情况下,我们要建模的数据未必需要改变。

所以,一般情况下,对外公开的接口一般声明为readOnly。

也可以在类内部实现重新声明为readwrite,这样可以在类内部修改参数。

这样,就只能在类的实现代码内部设置这些属性了。

其实准确的说,在对象外部,可以通过“键值编码”(KVC)技术设置这些属性的值。

【要点】

尽量创建不可变的对象。

若某属性仅可于对象内部修改,则在“class-continuation分类”中将其由readonly属性扩展为readwrite属性。

不要把可变的collection作为属性公开,而应提供相关方法,以此修改对象中的可变collection。

你可能感兴趣的:(【Effective Objective-C 2.0 读书笔记】第十八条:尽量使用不可变对象)