单例的创建以及常见的几种实现模式

霸气de小男生 提交于 2020-04-06 02:42:10

单例是用来干嘛的? 1.一种设计模式, 2.一般都是资源类,如数据库连接池等, 3.但是要保证一个类仅有一个实例,并提供一个访问它的全局访问点。(只能提供私有的构造器,即保证不能随意创建该类的实例。) 4.单例模式是一种常用的软件设计模式之一,其目的是保证整个应用中只存在类的唯一一个实例。 在程序运行中只能被创建一次,关键在于怎么保证这个类只能被创建一次,其实这个时候就涉及到线程安全问题了

简单的两种实现方式: 饿汉式:

/**

  • 单例模式

  • 饿汉式 */ public class Simple01 { //类初始化时,立即创建对象 private static Simple01 s=new Simple01(); private Simple01(){

    } //方法没有同步,调用效率高 public static Simple01 getInstance(){ return s; } }

懒汉式

/**

  • 单例模式
  • 懒汉式 */ public class Simple02 { //调用时再创建 private static Simple02 s; private Simple02(){} //线程同步 public static synchronized Simple02 getInstance(){ if(s==null){ s=new Simple02(); } return s; } }

单例模式是一种常用的软件设计模式之一,其目的是保证整个应用中只存在类的唯一一个实例。 在程序运行中只能被创建一次,关键在于怎么保证这个类只能被创建一次,其实这个时候就涉及到线程安全问题了

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!