2015070704 - EffactiveJava笔记 - 第15条 使可变性最小(1)
来源:互联网 发布:vb代码的字体如何改 编辑:程序博客网 时间:2024/06/06 07:31
20150707 星期二 北京
不可变类只是对象不能被修改的类,每个对象包含的信息必须在类创建实例的时候提供,并且在对象生命周期内不变.
为什么要存在不可变的类呢?不可变的类比可变类更加容易设计,实现和使用,不易出错,更加安全.
使类不可变遵循五条原则:
1.不要提供修改对象属性的方法.(只有get没有set)
2.保证类不会被扩展.目的在于防止粗心或者恶意的子类假装对象状态已经修改,破坏类的不可变行为.防止子类化,一般使用final修饰类.
3.所有的属性都是final的.如果一个指向新创建对象的引用在缺乏同步机制的情况下,从一个线程被传递到另一个线程,就必须确保正确的行为.
4.所有的属性都是私有的.防止客户端获取属性引用的可变对象的权限,不允许直接修改对象.技术上允许不可变的类具有共有的final属性,只要其包含基本类型的值或者不可变对象的引用,但是不建议这么做,会使得以后无法改变内部表示方法(可扩展性差).
5.确保对于任何可变组件的互斥访问.如果类具有指向可变对象的属性,则必须确保类的客户端无法获得指向这些对象的引用,并且永远不要用客户端提供的对象引用来初始化这样的属性,不提供任何方法来返回该对象的引用.在构造器和访问方法中使用保护性拷贝.
0 0
- 2015070704 - EffactiveJava笔记 - 第15条 使可变性最小(1)
- 2015070705 - EffactiveJava笔记 - 第15条 使可变性最小(2)
- 第15条:使可变性最小
- 2015070507 - EffactiveJava笔记 - 第13条 使类和成员的可访问性最小(1)
- 2015070508 - EffactiveJava笔记 - 第13条 使类和成员的可访问性最小(2)
- 2015070601 - EffactiveJava笔记 - 第13条 使类和成员的可访问性最小(2)
- 2015070701 - EffactiveJava笔记 - 第13条 使类和成员的可访问性最小(3)
- 第15条:使可变性最小化
- 第15条:使可变性最小化
- 第15条:使可变性最小化
- 2015062805 - EffactiveJava笔记 - 第41条 慎用重载(1)
- 第15条:使可变性最小化(创建不可改变类)
- Effective Java 第 15 条: 使可变性最小化
- 《Effective java》读书记录-第15条-使可变性最小化
- 2015062905 - EffactiveJava笔记 - 第46条 foreach优先传统for循环(1)
- 2015070102 - EffactiveJava笔记 - 第47条 了解和使用类库(1)
- 2015070104 - EffactiveJava笔记 - 第48条 获取精确结果不用float或double(1)
- 2015070108 - EffactiveJava笔记 - 第49条 基本类型优于装箱类型(1)
- 黑马程序员---OC基础---常见错误汇总
- yum 遇到 python运行问题
- Binary Tree Right Side View -- leetcode
- Java文如何制作帮助文档4
- 线性表--数组和链表的区别
- 2015070704 - EffactiveJava笔记 - 第15条 使可变性最小(1)
- [Objective-C] 属性中的 atomic/nonatomic/assign/retain/copy/readwrite/readonly 详解
- ERP导入已成服装企业必然趋势
- 保家卫国-转发台湾“丁不败”丁元恒教授的一篇博文
- C语言实现单链表相关操作
- 安装 gevent linux
- 操作系统中栈和堆的区别
- Linux strace命令
- 14.5粒子系统的实战