JAVA设计模式---单例模式

在java中基本模式:
                          单例模式、抽象工厂模式、建造者模式、工厂模式等等。

有些对象我们只需要一个,配置文件、连接池、工具类、缓存、日志对象等,

单例设计模式(singleton):最常用,最简单的设计模式.单例的编写有N种写法。

作用:保证某个应用程序中的某个实例有且只有一个

单例模式两种类型:

JAVA设计模式---单例模式_第1张图片

目的:保证某一个在整个应用中某一个类有且只有一个实例(一个类在内存只存在一个对象),即所有指向该类型实例的引用都指向同一块内存空间。  

写单例模式(饿汉式)的步骤

      1):必须在该类中,自己先创建出一个对象。

      2):私有化自身的构造器,防止外界通过构造器创建新的对象。

      3):想外暴露一个公共的静态方法用于获取自身的对象。

package wm;

class SingleTonDemo{
	// 1):必须在该类中,自己先创建出一个对象
	private static SingleTonDemo single = new SingleTonDemo();
	
	// 2):将构造方法私有化,不允许外界直接创建对象
	private SingleTonDemo() {}
	
	 // 3):向外暴露一个公共的静态方法用于获取自身的对象
	 public static SingleTonDemo getInstance() {
		 
		return single;
	 }
	 //  执行操作
	 public void sort() {
		 System.out.println("执行的方法");
	 }
}
public class SingleTonDemoTest{
	public static void main(String[] args) {
		// 执行操作
		SingleTonDemo.getInstance().sort();
	}
}

执行结果:

    执行的方法

懒汉模式:

package designMode.SingletonPattern;
/**
 * 懒汉模式
 * @author LENOVO
 *
 */
public class SingleTon {
	
	private SingleTon() {}
	
	private static SingleTon single;
	
	public static SingleTon getInstance() {
		if (single == null) {
			single = new SingleTon();
			
		}
		return single;
	}
  public void run() {
	  System.out.println("gogogo");
  }
}
package designMode.SingletonPattern;

public class Shen2 {
	public static void main(String[] args) {
		SingleTon s = SingleTon.getInstance();
		s.run();
	}
}

区别:

       恶汉模式的特点是加载类时比较慢,但是在运行时获取的速度比较快,线层安全。

       懒汉模式的特点是加载类时比较快,但运行获取对象的速度比较慢,线程不安全。

你可能感兴趣的:(后端---JavaSE)