20150707 星期二 北京
对于可变类来说,应用私有属性和公有set和get方法.从而保持封装数据.
如果类在它所在的包的外部进行访问,那么提供访问方法,以保留将来改变该类的内部表示法的灵活性.
如果共有类暴露它的属性,要想将来改变其内部表示法是不可能的,因为共有类的客户端代码已经遍布各处.然而如果类是包级私有,或者是内部类,直接暴露它的属性并没有本质上的错误.为什么呢?此类的代码注定包含在该类的包中,无法对包外的客户端造成影响;内部类改变的作用范围进一步压缩到类的内部,对类的外部没影响.
如果共有类的属性是不可变的,危害性相对小点.可以在构造方法中对数据的有效性进行限制,同时增加约束条件,比如给每个实例增加有效时间.
共有类永远不应该暴露可变的属性,让其暴露不可变属性危害小点.有时需要使用包级私有和内部类修饰属性,无论其可变还是不可变.
{你如何使用上面的知识呢?
1.共有类的属性进行私有化,然后提供共有的访问方法
2.类的访问级别设置为包级或者内部类!}