「这是我参与11月更文挑战的第29天,活动详情查看:2021最后一次更文挑战」## 单例模式:(Singleton)
单例的有且只有一个实例对象
单例模式的本质
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建
单例对象的创建
单例模式;要求此系统中有且只有一个实例对象;
-
1.确定是饿汉式还是懒汉式,然后创建一个静态的私有变量
-
2.构造器私有化
-
3.外部访问对象,要从我们自己构造好的私有对象返回
单例模式的分类
- 懒汉式
- 饿汉式
确定是哪种分类的,可以利用的是当前的静态的私有变量展示,
确定是饿汉式还是懒汉式,然后创建一个静态的私有变量
懒汉式 懒汉式时间换空间
private static Person Instance;
饿汉式直接创建
饿汉式,不让变动
private static final Person Instanc=new Peson();
单例模式的步骤
- 确定是饿汉式还是懒汉式,然后创建一个静态的私有变量
- 构造器私有化
- 外部访问对象,要从我们自己构造好的私有对象返回
单例的例子
代码实现:
/**
* @author lucas
* @create 2021-12-07 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);
}
}