Effective Java 第4章 类和接口

第13条 使类和成员的可访问性最小化

模块之间只通过API进行通信,一个模块不需要知道其他模块的内部工作情况。这个概念就是封装。
第一规则:尽可能使每个类或者成员不被外界访问
实例域不能是公有的。
使用公有的静态final数组域,是安全漏洞的一个常见根源

第14条 在公有类中使用访问方法而非公有域

如果类是包内访问或者私有嵌套类,直接暴露它的数据域并没有本质的错误
让公有类直接暴露域虽然从来都不是好办法,但是如果域是不可变的,这种做法的危害就比较小一些。
总之,公有类永远都不应该暴露可变的域。

第15条 使可变性最小

不可变类是指其实例不能被修改的类,每个实例中包含的所有信息都必须在创建该实例的时候就提供,并在对象的整个生命周期内固定不变。
为了使类不可变:
1. 不要提供任何会修改对象状态的方法
2. 保证类不会被扩展
3. 使所有域都是final的
4. 使所有域都是私有的
5. 确保对于任何可变组件的互斥访问。如果类具有可变对象的域,则必须保证客户端不会得到该对象的引用。并且不要用客户端提供的对象的引用来初始化这样的域。

不可变对象比较简单,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值