单列模式【饿汉式和懒汉式】

简介: 单列模式【饿汉式和懒汉式】

单列模式【饿汉式和懒汉式】

单例模式就是一个类只提供一个对象出来,提供一个取得这个对象的方法。

单例模式有两种:

  • 饿汉式
  • 懒汉式

1、饿汉式

  1. 私有化构造器
  2. 类的内部创建对象
  3. 向外提供一个访问本类的对象的静态方法
package com.linghu.single;
/**
 * 饿汉式
 * @author 令狐荣豪
 * @version 1.0
 */
public class SingleTon01 {
    public static void main(String[] args) {
//        Girlfriend instance = Girlfriend.getInstance();
//        System.out.println(instance);
        //饿汉式
        System.out.println(Girlfriend.n);//访问静态属性时,类的对象还是会被初始化创建,这就浪费了!
    }
}
class Girlfriend{
    private String name;
    public static int n=100;
    private static Girlfriend gf=new Girlfriend("小红");
    private Girlfriend(String name) {
        System.out.println("构造器。。。");
        this.name = name;
    }
    public static Girlfriend getInstance(){
        return gf;
    }
    @Override
    public String toString() {
        return "Girlfriend{" +
                "name='" + name + '\'' +
                '}';
    }
}

2、懒汉式

package com.linghu.single;
/**
 * 懒汉式
 * @author 令狐荣豪
 * @version 1.0
 */
public class SingleTon02 {
    public static void main(String[] args) {
        //访问静态属性的时候,对象不会被创建,不会浪费,需要的时候才会初始化创建对象
        System.out.println(Cat.n);
//        Cat instance = Cat.getInstance();
//        System.out.println(instance);
    }
}
class Cat{
    private String name;
   public static int n=100;
    private static Cat cat;
    private Cat(String name) {
        System.out.println("构造器调用...");
        this.name = name;
    }
    public static Cat getInstance(){
        if (cat==null){
            cat=new Cat("喵喵");
        }
        return cat;
    }
    @Override
    public String toString() {
        return "Cat{" +
                "name='" + name + '\'' +
                '}';
    }
}

3、总结

饿汉式和懒汉式创建对象的时机不一样,饿汉式是在类加载的时候就创建了,懒汉式是在使用时才创建。

目录
相关文章
|
7月前
|
设计模式 安全
详细讲解什么是单例模式
详细讲解什么是单例模式
|
7月前
|
设计模式 安全 Java
单例模式
​ 如有错误或有补充,以及任何的改进意见,请在评论区留下您的高见,同时文中给出大部分的示例 如果觉得本文写的不错,不妨点个赞,收藏一下,助力博主产生质量更高的作品 概念 单例模式(Singleton Pattern)是软件设计模式的一种,用于确保一个类只有一个实例,并提供一个全局访问点。这种模式通常用于需要频繁创建和销毁同一对象的场景,以减少系统资源的消耗和提高性能。 优缺点 优点: 实例控制:单例模式确保类只有一个实例,可以防止其他对象实例化自己的副本,从而确保所有对象都访问唯一实例。 节约资源:由于系统中只存在一个对象,可以节约系统资源,特别是在需要频繁创建和销毁对象的场景中,可
62 0
|
设计模式 安全 编译器
2023-6-12-第三式单例模式
2023-6-12-第三式单例模式
75 0
|
设计模式 Java Spring
什么场景要使用单例模式,什么场景不能使用?
经常有小伙伴问我,设计模式学了这么久,每次看到概念也都能理解。但是,就是不知道怎么用,在哪里能用?我告诉大家,设计模式,不是为了要用而用的,而是作为前人总结下来的经验,等到哪天需要用的时候,你能想起来为你所用。
110 0
|
SQL 安全 Java
五种单例模式介绍
五种单例模式介绍
94 0
|
设计模式 缓存
我学会了,单例模式
单例模式属于创建型模式,这个类型的设计模式是将 对象的创建和使用解耦了,花式的去创建对象。
134 0
我学会了,单例模式
|
数据采集 设计模式 算法
大佬,人人都说精通的单例模式,你精通了吗
大佬,人人都说精通的单例模式,你精通了吗
91 0
大佬,人人都说精通的单例模式,你精通了吗
|
设计模式 数据库 Python
|
SQL 设计模式 安全
单例模式详解
单例模式详解
247 0
单例模式详解
|
开发框架 安全 Java
单例模式的应用(1)
单例模式的应用(1)
148 0