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

原创 2015年07月07日 06:42:08

   20150707 星期二  北京

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

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

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

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

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

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

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

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

2015062808 - EffactiveJava笔记 - 第43条 返回零长度的数组或者集合,而非null

20150628 星期日 北京     对下面编程情景是否很熟悉呢?        privatefinal List cheeseInStock = ...;               publi...

《Effective java》读书记录-第14条-在公有类中使用访问方法而非公有域

先留着

2015070701 - EffactiveJava笔记 - 第13条 使类和成员的可访问性最小(3)

成员属性绝对不能公有的.为什么呢?如果此属性是非final,或者执行可变对象的final引用,一旦使属性公开,就等于放弃了对存储在这个属性中数据进行限制的能力,放弃了强制此属性不可变的能力;当属性被修...

2015070508 - EffactiveJava笔记 - 第13条 使类和成员的可访问性最小(2)

Java那些机制完成信息隐藏呢?    1.访问控制决定类,接口,成员的可访问性;    2.对象的可访问性由该对象声明所在的位置,以及修饰对象的访问控制修饰符共同决定.      第一规则:...

2015062802 - EffactiveJava笔记 - 第40条 谨慎设计方法签名

第40条 谨慎设计方法签名    20150628  星期日 北京    本条目是若干API设计技巧的总结,这些设计技巧有助于使你的API更容易学习和使用,并且比较不容易出错.    谨慎地选择方法名...

2015070405 - EffactiveJava笔记 - 第57条 只对异常使用异常(2)

异常只应该使用在异常情况下,它们永远不应该用于正常的控制流中.对API设计的启发.    设计良好的API不应该强迫它的客户端为了正常控制流而使用异常.    如果类具有”状态相关”的方法,即只有特定...

Effective JavaScript Item 50 优先使用遍历方法而非循环

优先使用遍历方法而非循环 在使用循环的时候,很容易违反DRY(Don't Repeat Yourself)原则。这是因为我们通常会选择复制粘贴的方法来避免手写一段段的循环语句。但是这样做回让代码...

2015070404 - EffactiveJava笔记 - 第57条 只对异常使用异常(1)

20150704 星期六 北京     猜测下面的代码意图是什么呢?     try {        int i =0;        while (true){          range[i+...

关于在用异步消息处理机制使用Message.Obtain()方法(而非New Message)获得一个Message对象的好处

类概述 定义一个包含任意类型的描述数据对象,此对象可以发送给Handler。对象包含两个额外的int字段和一个额外的对象字段,这样可以使得在很多情况下不用做分配工作。 尽管Message的构造...

优先使用(对象)组合,而非(类)继承

法则1:优先使用(对象)组合,而非(类)继承[ Favor Composition Over Inheritance ]组合1.(对象)组合是一种通过创建一个组合了其它对象的对象,从而获得新功能的复用...
  • brk1985
  • brk1985
  • 2011年07月25日 10:21
  • 689
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2015070702 - EffactiveJava笔记 - 第14条 共有类使用访问方法而非共有属性
举报原因:
原因补充:

(最多只允许输入30个字)