您当前的位置: 首页 > 

命运之手

暂无认证

  • 3浏览

    0关注

    747博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【设计模式】【03】单例模式

命运之手 发布时间:2022-04-11 09:44:05 ,浏览量:3

应用场景

单例模式,英文名Singleton Pattern

它规定一个类只有一个实例化对象,并且提供获取唯一实例的方法

使用这种模式一般有两种可能性

  • 一是希望节省内存,避免重复创建内容相同的对象
  • 二是在业务上,该类的对象属性是固定的,比如SystemConfig类,创建多份操作不当容易造成数据不一致

单例模式有很多中实现方式,只要能保证类实例唯一,都是单例模式

实现一

单例模式的标准写法


	public class SingletonTestA {
	
	    //唯一实例,类初始化时就创建,这样可以保证线程安全
	    private static final SingletonTestA instance = new SingletonTestA();
	
	    //禁用构造方法,这样就无法手动创建多份实例
	    private SingletonTestA() {
	
	    }
	
	    //通过方法返回唯一实例
	    public static SingletonTestA getInstance() {
	        return instance;
	    }
	}

实现二

在单例模式的基础上扩展出一个三例模式


	public class SingletonTestC {
	
	    private static final List instances = new ArrayList();
	
	    static {
	        instances.add(new SingletonTestC());
	        instances.add(new SingletonTestC());
	        instances.add(new SingletonTestC());
	    }
	
	    public static int getInstanceCount() {
	        return instances.size();
	    }
	
	    public static SingletonTestC getInstance(int index) {
	        if (index = instances.size())
	            throw new RuntimeException("index error");
	        return instances.get(index);
	    }
	}

关注
打赏
1654938663
查看更多评论
立即登录/注册

微信扫码登录

0.0379s