关闭

2015070702 - EffactiveJava笔记 - 第14条 共有类使用访问方法而非共有属性

标签: java
278人阅读 评论(0) 收藏 举报
分类:

   20150707 星期二  北京

   对于可变类来说,应用私有属性和公有set和get方法.从而保持封装数据.

   如果类在它所在的包的外部进行访问,那么提供访问方法,以保留将来改变该类的内部表示法的灵活性.

   如果共有类暴露它的属性,要想将来改变其内部表示法是不可能的,因为共有类的客户端代码已经遍布各处.然而如果类是包级私有,或者是内部类,直接暴露它的属性并没有本质上的错误.为什么呢?此类的代码注定包含在该类的包中,无法对包外的客户端造成影响;内部类改变的作用范围进一步压缩到类的内部,对类的外部没影响.

   如果共有类的属性是不可变的,危害性相对小点.可以在构造方法中对数据的有效性进行限制,同时增加约束条件,比如给每个实例增加有效时间.

   共有类永远不应该暴露可变的属性,让其暴露不可变属性危害小点.有时需要使用包级私有和内部类修饰属性,无论其可变还是不可变.

   {你如何使用上面的知识呢?

   1.共有类的属性进行私有化,然后提供共有的访问方法

   2.类的访问级别设置为包级或者内部类!}

0
0

  相关文章推荐
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:83016次
    • 积分:4382
    • 等级:
    • 排名:第6829名
    • 原创:364篇
    • 转载:45篇
    • 译文:1篇
    • 评论:2条
    文章存档
    最新评论