设计模式是前辈们在多年开发工作中经验的总结,可以提高代码的重用性,可靠性格规范性,让代码更加容易理解,而单例模式是最简单,最常用的设计模式之一。基本的设计模式有23种;
单例模式中有饿汉模式和懒汉模式;
/*
*应用的场合:有些对象只需要有一个就足够了
*作用:保证整个应用程序某个实例有且仅有一个
*类型:饿汉模式和懒汉模式
*/
/*
*饿汉模式
*当要创建一个对象时,都会调用这个类的构造方法;如果一个类没有指定构造方法;就会调用系统**默认的构造方法;、
*/
package com
public class Singleton{
//1.将构造方法私有化,不允许外部直接创建对象;
private Singleton(){
}
//2.创建类的实例。类的唯一实例;使用private static修饰;在Singleton加载的时候就会执行;创建一个类的实例;
private statice Singleton instance = new Singleton();
//3.提供一个用于获取实例的方法;使用public static 修饰;
public static Singleton getInstace (){
return instance;
}
}
/*懒汉模式*/
package com
public class Singleton2{
//将构造方法私有化,不允许外边直接创建;
private Singleton2(){
}
//创建类的唯一实例。使用private static修饰;当类加载的时候并没有去
// 创建这个唯一的实例;而是当用户去获取的时候才去创建;
private static Singleton2 instance;
//3.用于获取实例的方法;
public static Singleton2 getIntace(){
if(instance == null){
instance = new Singleton2();
}
return instance;
}
}
public class test{
public void main(String[] args){
Singleton s1 = Singleton.getInstace() ;
Singleton s2 = Singleton.getInstace() ;
if(s1==s2){
System.out.print("s1和s2是同一个实例")
}else{
System.out.print("s1和s2不是同一个实例")
}
}
}
/*
饿汉模式的特点是加载类时比较慢,但在运行时比较快;(线程安全)
懒汉模式的特点是加载类时比较快,但在运行时比较慢;(线程不安全)
*/