设计模式之单例模式

  单例模式(创建型)

     单例模式是一种对象创建型模式,使用单例模式,可以保证一个类只生成唯一的一个实类对象;也就是说一个应用程序中只会存在一个实类对象;保证一个类,只有一个实类存在,同时提供能对该实例加以访问的全局访问方法

      单例模式分为饿汉模式和懒汉模式

        创建一个类

package Singletonmodel;
/*
 * 单例模式的 重点
 * 		一个类的实类有且仅有一个的时候
 */
public class Person {
	private Person() {}
	private String name;
	private int age;
	private static  Person person=null;
	public int getAge() {
		return age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

  

        饿汉模式:在声明的位置进行创建

package Singletonmodel;
/*
 * 单例模式的 重点
 * 		一个类的实类有且仅有一个的时候
 */
public class Person1 {
	//不能创建对象
	private Person1() {}
	private String name;
        //使用final修饰成为常量不能被修改
	private static final Person1 person1=new Person1();
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public static Person1 getPerson (){//饿汉实现方法
		return person1; 
	}
}
    

        懒汉模式:在方法内部进行创建(使用线程锁来控制当前类你没有使用完成别的类无法进行访问)

package Singletonmodel;
/*
 * 单例模式的 重点
 * 		一个类的实类有且仅有一个的时候
 */
public class Person2 {
	//不能创建对象
	private Person2() {}
	private String name;
	private static Person2 person2=new Person2();
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public static Person2 getPerson (){//懒汉实现方法
		if (person2==null) {
			synchronized (person2.getClass()) {
				person2=new Person2();
			}
		}
		return person2; 
	}
}

  

原文地址:https://www.cnblogs.com/fjkgrbk/p/Singletonmodel.html