Effective Java 2
来源:互联网 发布:linux进入vi编辑器 编辑:程序博客网 时间:2024/06/08 05:58
第二条:使用私有构造函数强化Singleton属性
Singleton是指这样的类,它只能实例化一次。通常代表本质上具有唯一性的系统组件,如视频文件或文件
系统。
实现Singleton的两种常用方法:(目地都是把构造函数保持为私有,并且提供一个静态成员,以便客户
能够访问该类唯一的实例)
1、用一个公有的静态final成员,返回受保护的构造函数。
public class Elvis{
public static final Elvis INSTANCE = new Elvis();
private Elvis() {
.........}
}
好处:成员的声明清楚地表明了这个类是一个singleton,公有的静态final域总是包含相同的对象引用。
2、提供一个公有的静态工厂方法。
public class Elvis{
private static final Elvis INSTANCE = new Elvis();
private Elvis() {
.........}
public static Elvis getInstance() {
return INSTANCE;
}
}
好处:它提供了灵活性:在不改变API的前提下,我们可以把该类做成singleton的或不做成singleton。
而且静态工厂方法返回的唯一实例也很容易被修改。
第三条:通过私有构造函数强化不可实例化的能力
不可实例化我理解为一些只包含静态方法和静态域的工具类,比如
java.lang.Math,java.util.Arrays,java.util.Collections
只有当一个类不包含显式的构造函数的时候,编译器才会生成默认构造函数,所以,我们只要让这个类包
含单个显式的私有构造函数,这样它就不可被实例化了,哈哈。
public class UtilityClass {
private UtilityClass (){
........}
}
这样这个不能被子类化的类的构造函数必须要调用一个可访问的超类构造函数,显式或隐式地。
- Effective Java 2
- Effective Java笔记 (2)
- Effective java读书笔记2
- Effective Java----2
- 《Effective Java》学习笔记2
- Effective Java (2nd Edition)
- Effective java读书笔记(2)
- [Effective Java] - 2,内存泄露
- Effective Java学习笔记(2)
- 读书笔记2(Effective java)
- Effective Java
- Effective Java
- Effective Java
- Effective Java
- effective java
- effective java
- Effective Java
- Effective Java
- 读书笔记2006.1.6
- 18位身份证号码校验码的算法(JAVA)
- C#的资源回收
- 了解你的是非观
- 女王的黎明
- Effective Java 2
- 我的电子书架
- 今天qq上有人向我询问我毕业设计的事
- Javascript的IE和Firefox兼容性汇编(转贴)
- Spring对log4j的增强
- 探秘Symantec安全业务中心
- 一大早遇到这种问题,faint
- 某政府网站被加入的自动下载病毒文件的代码变了花样(第3版)
- 明确测试目标