《Effective java》读书记录-第13条-使类和成员的可访问性最小化

来源:互联网 发布:sql获取当前时间 编辑:程序博客网 时间:2024/05/19 09:11

要区别设计良好的模块与设计不好的模块,重要因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数据和其他实现细节。这个概念被称为信息隐藏(information hiding)或封装(encapsulation)。

只所以要信息隐藏,是因为它可以有效地解除组成系统的各模块之间的耦合关系,使得这些模块可以独立地开发、测试、优化、使用、理解和修改。信息隐藏虽然不能带来更好的性能,但是它可以有效的调节性能:一旦完成一个系统,并确定哪些模块影响了系统性能(优化准则 见第55条),那些模块优化后,并不会影响其他模块的正确性。信息隐藏还可以提高模块的重用性。信息隐藏也降低了构建大型系统的风险,即使整个系统不可用,但这些独立模块却有可能是可用的。

正确使用修饰符对于信息隐藏非常关键。

访问控制机制决定了类、接口和成员的可访问性。实体的可访问性由该实体声明所在的位置,以及该实体声明中所出现的访问修饰符共同决定。

1.尽可能地使每个类或者成员不被外界访问

对于成员有4种可能的访问级别:

1、私有的(private):只有内部才可以访问。

2、包级私有(package-private):缺省(default)访问级别,包内部的类都可以访问。

3、受保护的( protected):允许子类及所在包的类都允许访问。

4、公有的(public):任何地方都可以访问。

只有当其他类真正需要访问该类的成员时,才应该修改private修饰符。

如果实现了 Serializable接口,这些私有域就有可能被“泄漏”到API。



0 0
原创粉丝点击