package com.atlucas.creation.singleton;
/**
* @author lucas
* @create 2021-11-19 15:01
* @description 单例模式的实体类
*/
public class Person {
private String name;
private Integer age;
/**
* 单例模式;要求此系统中有且只有一个实例对象;
*
* 1.确定是饿汉式还是懒汉式,然后创建一个静态的私有变量
* 2.构造器私有化
* 3.外部访问对象,要从我们自己构造好的私有对象返回 *
*/
/**
* 1.确定是饿汉式还是懒汉式,然后创建一个静态的私有变量
* private static final Person Instanc=new Peson(); 饿汉式,不让变动
*/
private static Person Instance; //懒汉式时间换空间
/**
* 2.构造器私有化
*/
private Person (){
System.out.println("需要创建一个对象person");
}
/**3.外部访问
* 公共的静态方法-->利用静态存储方法区,
* 建立一个静态的空对象,如果需要就一直存在,直至程序完结
* @return
*/
public static Person getPerson(){
//多线程情况下不安全
if (Instance==null){
Person person=new Person();
Instance=person;
}
return Instance;
}
public static void main(String[] args) {
//静态的公共获取方法--对象都一样
Person person1 = Person.getPerson();
Person person2 = Person.getPerson();
System.out.println(person1==person2);
}
}
评论