总共657条建议,每次把自己理解的建议记录下来
第一条:考虑用静态工厂来代替公开的构造方法
第二条:通过私有的构造函数来强化单例属性
两种单例模式:
模式一:
/**
* 通过构建一个公开静态的对象实例,来保持单例。
* 缺点:想改变单例为多例时,改动较大,若是想一直保持该类为单例的话,没问题,性能上也较高
*/
public static final Singleton2 instance = new Singleton2();
private Singleton2(){}
模式二:
/**
* 通过构建一个公开静态的方法来获得实例。
* 优点:想改变单例为多例时,修改方便
*/
private static final Singleton1 instance = new Singleton1();
private Singleton1(){}
public static Singleton1 getInstance()
{
return instance;
}
第三条:通过私有的构造函数来强化不可实例化
比如说我们需要编写一些全是静态方法或静态属性的类,该类不被实例化。
最好的例子就是工具类。java.util.Collections包。只提供公开,静态的方法来访问。
第一条:考虑用静态工厂来代替公开的构造方法
第二条:通过私有的构造函数来强化单例属性
两种单例模式:
模式一:
/**
* 通过构建一个公开静态的对象实例,来保持单例。
* 缺点:想改变单例为多例时,改动较大,若是想一直保持该类为单例的话,没问题,性能上也较高
*/
public static final Singleton2 instance = new Singleton2();
private Singleton2(){}
模式二:
/**
* 通过构建一个公开静态的方法来获得实例。
* 优点:想改变单例为多例时,修改方便
*/
private static final Singleton1 instance = new Singleton1();
private Singleton1(){}
public static Singleton1 getInstance()
{
return instance;
}
第三条:通过私有的构造函数来强化不可实例化
比如说我们需要编写一些全是静态方法或静态属性的类,该类不被实例化。
最好的例子就是工具类。java.util.Collections包。只提供公开,静态的方法来访问。