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

单例模式

时间:2024-06-09 10:56:24浏览次数:11  
标签:Singleton getInstance 模式 instance private 单例 public

单例模式(Singleton Pattern),保证一个类只有一个实例,并提供一个全局访问点以供外部代码使用。

结构图

  • 定义一个私有成员变量instance;
  • 构造函数为private私有的;
  • 声明了一个名为getInstance的public公有静态方法,返回其唯一实例,供客户端Client使用。

单例核心代码(Java实现)

public class Singleton {
    private static Singleton instance;

    private Singleton() {
    }

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

客户端代码

class Client {
    public static void main(String[] args) {
        Singleton singleton1 = Singleton.getInstance();
        Singleton singleton2 = Singleton.getInstance();
        if (singleton1 == singleton2) {
            System.out.println("两个对象是相同的实例");
        }
    }
}

标签:Singleton,getInstance,模式,instance,private,单例,public
From: https://www.cnblogs.com/cavan2021/p/18239320

相关文章

  • 2024050801-重学 Java 设计模式《实战策略模式》
    重学Java设计模式:实战策略模式「模拟多种营销类型优惠券,折扣金额计算策略场景」一、前言文无第一,武无第二不同方向但同样努力的人,都有自身的价值和亮点,也都是可以互相学习的。不要太过于用自己手里的矛去攻击别人的盾......
  • 模板方法模式
    什么是模板方法模式   模板方法模式是一种行为设计模式,它定义了一个操作中的算法的框架,将一些步骤延迟到子类中实现。模板方法模式使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤。在模板方法模式中,有一个抽象类定义了一个模板方法,该方法定义了算法的步骤......
  • 设计模式-外观模式
    什么是外观模式    外观模式(FacadePattern)是一种结构型设计模式,它提供了一个简单统一的接口,用于访问复杂子系统中的一组接口。外观模式通过隐藏系统的复杂性,向客户端提供一个简化的接口,使得客户端更容易使用系统。它可以将一组复杂的类和子系统封装在一个外观类中,通过......
  • 仅主机模式下无网配置ISO本地yum源,实现无网下载
            仅主机:虚拟机网络环境中的一种,一般认为仅主机模式下是不能联网的,不能和外网通信。实际上仅主机模式是可以连接外网的,只是配置比较麻烦,相比于桥接模式和NAT模式操作更加繁琐。        接下来,我们就说说怎么配置本地yum源。(我使用的是CentOS7)  ......
  • 【Rust】——面向对象设计模式的实现
     ......
  • 维护一个对象只能通过new来创建,且要实现对象能够自动销毁的单例代码实现及扩展。
    结论:析构函数设为私有且在单例类的内部维护一个Chelper类。(如果是单例,还要将构造函数设为私有,如果是可以在全局有多个实例但是希望只能提供new创建,则构造必须公有且必须提供成员函数来调用deletethis来调用该对象的析构函数)。具体细节可看代码解释部分。代码实现:test.hcla......
  • 数据挖掘--挖掘频繁模式、关联和相关性:基本概念和方法
    数据挖掘--引论数据挖掘--认识数据数据挖掘--数据预处理数据挖掘--数据仓库与联机分析处理数据挖掘--挖掘频繁模式、关联和相关性:基本概念和方法数据挖掘--分类数据挖掘--聚类分析:基本概念和方法频繁项集、闭项集和关联规则频繁项集:出现的次数超过最小支持度计数阈值......
  • 设计模式:命令模式(Command Pattern)及实例
     好家伙, 0.什么是命令模式在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象......
  • Python面试宝典:Python中与设计模式相关的面试笔试题(1000加面试笔试题助你轻松捕获大厂
    Python面试宝典:1000加python面试题助你轻松捕获大厂Offer【第二部分:Python高级特性:第二十二章:代码设计和设计模式:第二节:设计模式】第二十二章:代码设计和设计模式第二节:设计模式创建型模式结构型模式行为型模式python中与设计模式相关的面试笔试题面试题1面试......
  • 设计模式-设计模式分类
    概述23种设计模式,分为创建型模式、结构型模式和行为型模式。另外,近来这一清单又增加了一些类别,例如,并发型模式、线程池模式、JavaEE企业技术的多层应用程序上的模式等。一、创建型模式1.工厂方法模式(FactoryMethod)定义一个接口用于创建对象,但是让子类决定初始化哪......