小谈静态类和单例模式

这篇具有很好参考价值的文章主要介绍了小谈静态类和单例模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

静态类(Static Class)和单例(Singleton)都是在编程中用于实现特定类型的设计模式或代码组织方式。它们在不同的情境下有不同的用途和特点。

静态类(Static Class)

静态类是一种类,它的方法和属性都是静态的,意味着它们可以在不创建类实例的情况下直接访问。静态类常常用于实现一组相关的静态方法,通常用于组织工具方法或者辅助功能,而不需要维护实例状态。静态类在许多编程语言中都有类似的实现方式。

使用场景
  • 提供一组通用的工具函数。
  • 实现一些不需要状态的辅助功能。
  • 在代码中的各处调用相同的方法,而不必实例化类。
伪代码示例
static class MathUtils {
    static int add(int a, int b) {
        return a + b;
    }
    
    static int subtract(int a, int b) {
        return a - b;
    }
}

单例(Singleton)

单例是一种创建模式,它确保一个类只有一个实例,并提供全局访问点来访问该实例。单例常用于需要共享状态和数据的情况,以确保整个应用程序中只有一个实例存在。

使用场景
  • 管理全局资源,例如日志记录器、配置管理器等。
  • 控制特定资源的访问,以避免多个实例引发冲突。
  • 维护一个共享状态,例如用户登录状态。
伪代码示例
class Singleton {
    private static Singleton instance;
    private int counter = 0;
    
    private Singleton() {
        // 私有构造函数,防止外部实例化
    }
    
    static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
    
    int getCounter() {
        return counter;
    }
    
    void incrementCounter() {
        counter++;
    }
}

区别

  1. 多实例 vs 单实例: 静态类没有实例,其所有方法和属性都是静态的,不需要实例化。而单例类有一个唯一的实例,通过该实例访问其方法和属性。
  2. 状态维护: 静态类不维护任何实例状态,而单例可以维护状态并在应用程序中共享。
  3. 可扩展性: 静态类通常不能扩展,因为其方法是静态的。单例类可以实现接口、继承或者使用其他方式进行扩展。
  4. 全局访问: 单例类通常用于提供全局访问点,以便在整个应用程序中共享状态。静态类的方法也可以通过类名直接访问,但没有单例类提供的灵活性和可控性。

静态类适用于不需要维护状态的情况,而单例适用于需要共享状态和资源的情况。选择使用哪种方式取决于你的应用程序的需求和设计目标。文章来源地址https://www.toymoban.com/news/detail-700109.html

到了这里,关于小谈静态类和单例模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 性能优化之懒加载 - 基于观察者模式和单例模式的实现

            在前端性能优化中,关于图片/视频等内容的懒加载一直都是优化利器。当用户看到对应的视图模块时,才去请求加载对应的图像。 原理也很简单,通过浏览器提供的 IntersectionObserver - Web API 接口参考 | MDN (mozilla.org),观察“哪个元素和视口交叉”,从而进行懒加载。

    2024年02月05日
    浏览(29)
  • Python入门【​编辑、组合、设计模式_工厂模式实现 、设计模式_单例模式实现、工厂和单例模式结合、异常是什么?异常的解决思路 】(十七)

    👏作者简介:大家好,我是爱敲代码的小王,CSDN博客博主,Python小白 📕系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 🔥如果感觉博主的文章还不错的

    2024年02月14日
    浏览(28)
  • 设计模式3:单例模式:静态内部类模式是怎么保证单例且线程安全的?

    上篇文章:设计模式3:单例模式:静态内部类单例模式简单测试了静态内部类单例模式,确实只生成了一个实例。我们继续深入理解。 静态变量什么时候被初始化? 这行代码 private static Manager instance = new Manager(); 什么时候执行? 编译期间将.java文件转为.class文件,运行期间

    2024年02月12日
    浏览(33)
  • Java单例模式的五种实现方式 懒汉式 饿汉式 双重校验锁 静态变量 静态内部类 枚举实现单例模式等

    Java单例模式是一种设计模式,用于确保一个类只有一个实例,并提供全局访问点以获取该实例。它通常用于需要共享资源或控制某些共享状态的情况下。 懒汉式:在类加载的时候就创建对象,要再调用方法时才创建对象,减少内存开销。 饿汉式:再类加载的时候就实例化对

    2024年04月27日
    浏览(27)
  • 【单例模式】饿汉式、懒汉式、静态内部类--简单例子

    单例模式是⼀个单例类在任何情况下都只存在⼀个实例,构造⽅法必须是私有的、由⾃⼰创建⼀个静态变量存储实例,对外提供⼀个静态公有⽅法获取实例。 目录 一、单例模式 饿汉式  静态内部类 懒汉式 反射可以破坏单例 道高一尺魔高一丈 枚举 类⼀加载就创建对象,这

    2024年04月23日
    浏览(36)
  • Java 基础进阶篇(一)——— static 静态关键字与单例模式

    static:代表静态的意思,可以修饰成员变量,可以修饰成员方法。 static 修饰方法之后称为 静态方法(类方法) ,修饰成员变量之后称为 静态成员变量(类变量) 。 static 修饰后的成员变量, 可以被类的所有对象共享 (访问、修改) 。 静态成员变量 实例成员变量 概述 有

    2024年02月01日
    浏览(70)
  • 【Java|多线程与高并发】设计模式-单例模式(饿汉式,懒汉式和静态内部类)

    设计模式是一种在软件开发中常用的解决复杂问题的方法论。它提供了一套经过验证的解决方案,用于解决特定类型问题的设计和实现。设计模式可以帮助开发人员提高代码的可重用性、可维护性和可扩展性。 设计模式有很多,本文主要介绍单例模式. 单例模式是一种创建型设

    2024年02月11日
    浏览(44)
  • Java|static关键字的应用【工具类、代码块和单例】

    在上一篇文章讲完了static的一些基础知识后,我们就来说一说这个在应用开发中具体可以怎么使用吧,希望看完这篇文章可以对您有帮助📖 类中都是一些 静态方法 ,每个方法都是以完成一个公用的功能为目的,这个类用来给系统开发人员 共同使用的 一是调用

    2023年04月12日
    浏览(27)
  • 小谈设计模式(20)—组合模式

    link 主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。希望各位可以监督我,我们一起学习进步,加油,各位。 组合模式是一种结构型设计模式,它允许将对象组合成树状结构以表示“部分-整体”的层次结构。组

    2024年02月07日
    浏览(31)
  • 小谈设计模式(12)—迪米特法则

    主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。希望各位可以监督我,我们一起学习进步,加油,各位。 迪米特法则(Law of Demeter)也被称为最少知识原则(Least Knowledge Principle),是一种面向对象设计的原则,

    2024年02月07日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包