设计类的时候,应充分运用属性来封装数据。而在使用属性时,则可将其声明为“只读”。
属性是“即可读又可写”,这样设计出来的类都是“可变的”。
如果把可变对象放入collection之后又修改其内容,很容易就会破坏set的内部数据结构,使其失去固有的语义。
1,尽量创建不可变的对象
2,若某属性仅可于对象内部修改,则在“分类”中将其由readonly属性扩展为readwrite属性。
3,不要把可变的collection作为属性公开,而应提供相关方法,以此修改对象中的可变collection。