单例模式--创建型设计模式
Posted 大佬健
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式--创建型设计模式相关的知识,希望对你有一定的参考价值。
1.饿汉式
优点:线程安全
缺点:立即加载
2.懒汉式
优点:懒加载
缺点:线程不安全(可以用双重锁机制来保证线程安全,但是调用效率低)
3.内部类型单例模式,前两种基本不用,因为这种包含前两种的优点
优点:1、线程安全,2、懒加载
代码如下:
package sington; public class InnerSing { private InnerSing(){ } public static InnerSing getIntance(){ return InnerClass.instance; } private static class InnerClass { private static InnerSing instance = new InnerSing(); } }
4、枚举类
优点:前三种都没法避免使用反射/序列化(即写入硬盘再读取硬盘创建对象)来创建对象,
而枚举类可以;(其实可以通过构造器代码写:对象非空判断+抛错可以防止反射创建,而重写readResolve()方法可以防止反系列化构造多一个对象)
缺点:不是懒加载
代码如下:
package sington; public enum EnumSing { INTANCE; public void function(){ System.out.println("具体执行方法"); } public static EnumSing getIntance(){ return INTANCE; } }
以上是关于单例模式--创建型设计模式的主要内容,如果未能解决你的问题,请参考以下文章