首页 > 其他分享 >单例设计模式

单例设计模式

时间:2024-07-18 22:26:20浏览次数:11  
标签:对象 创建对象 instance static 单例 设计模式

单例设计模式:

设计模式:

​ 一个问题通常有n种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式

​ 设计模式有23种,对应23种软件开发中会遇到的经典问题。

单例设计模式:确保一个类只有一个对象。

 
 

饿汉式单例:

饿汉式单例:拿对象时,对象早就创建好了。

饿汉式单例步骤:

1.构造器私有, 目的就是不让别人创建对象。

2.使用成员变量保存自己创建的单例对象。

3.提供方法返回单例对象给别人使用。

package com.ouyang.demo04;

//音乐播放器(单例),作用:让一个类只能创建一个对象
public class AudioPlayer {

    //1.构造器私有,目的就是不让别人创建对象
    private AudioPlayer(){

    }

    //2.使用成员变量保存自己创建的单例对象(类加载的时候就创建对象)
    //private保证别人不能修改该实例
    //static保证只有一份实例
    private static AudioPlayer instance=new AudioPlayer();

    //3.提供方法返回单例对象给别人使用
    //static 保证别人不需要创建对象,直接使用类名来调用该方法
    public static AudioPlayer getInstance(){
        return instance;
    }
}

 
 

懒汉式单例:

懒汉式单例:拿对象时,才开始创建对象。

package com.ouyang.demo04;

//视频播放器
public class VideoPlayer {
    //1.构造器私有
    private VideoPlayer(){

    }

    //2.使用静态变量保存单例对象
    private static VideoPlayer instance;//null

    //3.提供静态方法返回对象给别人使用
    // 懒汉式单例,拿对象使用时,才创建对象(晚)

    public static VideoPlayer getInstance(){
        //第一次调用这个方法会发现对象==nuLL,就会创建对象,后面这个对象就有值了,不再创建了
        if(instance==null){
            instance=new VideoPlayer();
        }
        return instance;
    }
}

标签:对象,创建对象,instance,static,单例,设计模式
From: https://blog.csdn.net/m0_57463864/article/details/140534774

相关文章

  • 模板方法设计模式
    模板方法设计模式:模板方法设计模式:解决方法中存在重复代码的问题。  模板方法设计模式的写法:1、定义一个抽象类2、在里面定义2个方法​一个是模板方法:把相同代码放里面去​一个是抽象方法:具体实现交给子类完成建议使用final关键字修饰模板方法:​模板方......
  • 设计模式
    总的总结策略模式:注入接口观察者模式:事件与监听器责任链模式:方法三抽象类代理模式:aop适配器模式单例模式建造者模式@Builder工厂模式......
  • 设计模式之适配器模式(学习笔记)
    定义 适配器模式是一种结构型设计模式,它允许将一个类的接口转换为客户端希望的另一个接口。适配器使得原本由于接口不兼容而不能一起工作的类可以协同工作。通过创建适配器类,可以将现有类的接口转换成目标接口,从而使这些类能够在一起工作。为什么使用适配器模式兼容性适......
  • java23种设计模式!附源码
            本文将详细介绍Java中常见的23种设计模式、应用场景、优缺点、代码示例。包括单例模式、工厂模式、建造者模式、原型模式、适配器模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、代理模式、职责链模式、状态模式、策略模式、模板方法模式、观察者......
  • Spring与设计模式实战之策略模式
    Spring与设计模式实战之策略模式引言在现代软件开发中,设计模式是解决常见设计问题的有效工具。它们提供了经过验证的解决方案,帮助开发人员构建灵活、可扩展和可维护的系统。本文将探讨策略模式在Spring框架中的应用,并通过实际例子展示如何通过Spring的特性来实现和管理策......
  • 设计模式-领域逻辑模式-事务脚本(Transaction Script)
    事务脚本的特点多数应用可看成由多个事务组成事务脚本将多个业务逻辑组织成单个过程事务间相互修改各自产生的数据事务脚本的运行机制    使用事务脚本时,领域逻辑主要通过系统所执行的事务来组织。例如:预定酒店过程。事务脚本的组织将整个事务脚本放在一个类里每......
  • 设计模式:真正的建造者模式
    又臭又长的set方法经常进行Java项目开发使用各类starter的你一定见过这种代码:publicclassSwaggerConfig{@BeanpublicDocketapi(){returnnewDocket(DocumentationType.SWAGGER_2).select().apis(RequestHandler......
  • Linux C++ 059-设计模式之备忘录模式
    LinuxC++059-设计模式之备忘录模式本节关键字:Linux、C++、设计模式、备忘录模式相关库函数:概念备忘录模式(MementoPattern),又叫做快照模式(SnapshotPattern)或Token模式,是GoF的23种设计模式之一,属于行为模式。定义(源于GoF《设计模式》):在不破坏封闭的前提下,捕获一个......
  • Linux C++ 060-设计模式之单例模式
    LinuxC++060-设计模式之单例模式本节关键字:Linux、C++、设计模式、单例模式相关库函数:概念单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对......
  • 模板设计模式
    模板模式(TemplatePattern)是一种行为设计模式,它在一个方法中定义一个操作的骨架,而将一些步骤的实现延迟到子类中。模板方法模式使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。模板模式的组成部分抽象类(AbstractClass):定义算法的骨架,并包含一个模板方法。......