单例设计模式和工厂设计模式
1 单例设计模式
单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。总之,选择单例模式就是为了避免不一致状态。
特点:
单例类只能有一个实例。
单例类必须自己创建自己的唯一实例。
单例类必须给所有其他对象提供这一实例。
单例四大原则:
构造私有
以静态方法或者枚举返回实例
确保实例只有一个,尤其是多线程环境
确保反序列换时不会重新构建对象
实现单例模式的方式
(1) 饿汉式
饿汉式单例在类加载初始化时就创建好一个静态的对象供外部使用,除非系统重启,这个对象不会改变,所以是线程安全的。
public class Singleton {
/**
* 私有构造 避免了类在外部被实例化
*/