单例模式(创建型)
单例模式是一种对象创建型模式,使用单例模式,可以保证一个类只生成唯一的一个实类对象;也就是说一个应用程序中只会存在一个实类对象;保证一个类,只有一个实类存在,同时提供能对该实例加以访问的全局访问方法。
单例模式分为饿汉模式和懒汉模式
创建一个类
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;
}
}

浙公网安备 33010602011771号