首页 > 编程语言 >Java的单例模式其实跟C的面向过程没什么区别

Java的单例模式其实跟C的面向过程没什么区别

时间:2024-08-07 16:19:03浏览次数:6  
标签:Singleton Java 区别 稍微 接口 面向 单例

这个我觉得倒也没有那么好笑,Java里面Singleton用的的确是有点多得离谱了,实际上把一个Singleton类的所有成员(包括字段和方法)都换成静态也没有什么不可以的,用Singleton主要是这样几个优点:
1、Singleton类可以用接口和继承,static不行
2、因此,Singleton类稍微保留了一点多态能力,例如可以有多个实现了同一接口的Singleton类,然后将实例作为参数传给其他接口,用来实现某些设计模式同样
3、因为1,Singleton对依赖注入框架比较友好一点,其他部分的代码可以只依赖接口而非具体的实现类
4、Singleton类可以稍微有一点点生命周期管理功能,也可以稍微管理一下初始化和析构的顺序

能看出我一直都是用“稍微”来形容的,其实大部分场景下这些差异并没有那么本质的区别。要我说,真正的原因还是懒得每个接口都写一遍static吧

确实没啥区别。。
单例类都是xxxHandler或者xxxService,然后传的对象都是pojo的贫血对象(本质就一结构体)

标签:Singleton,Java,区别,稍微,接口,面向,单例
From: https://www.cnblogs.com/JianfeiMa/p/18347256

相关文章

  • [Java基础]Java8新特性
    Interfaceinterface的设计初衷是面向抽象,提高扩展性。这也留有一点遗憾,Interface修改的时候,实现它的类也必须跟着改。为了解决接口的修改与现有的实现不兼容的问题。新interface的方法可以用default或static修饰,这样就可以有方法体,实现类也不必重写此方法。一个interf......
  • JavaScript中的异步编程:Promise、async 和 await
    JavaScript中的异步编程:Promise、async和await在JavaScript中,Promise、async和await是处理异步操作的关键技术。这些技术允许开发者以更清晰、更可维护的方式编写异步代码,特别是在面对复杂的异步逻辑时。下面我会详细解释每个概念并展示它们是如何协同工作的。Prom......
  • [Java基础]包装类
    为什么需要包装类Java中的包装类是为了解决基本数据类型(如int、char、boolean等)和对象之间的转换问题而引入的。基本数据类型是Java语言中的基础类型,它们不是对象,不能直接参与面向对象编程的特性,如方法调用、继承和多态等。然而,在某些情况下,我们需要将基本数据类型作为对象来处理......
  • Java实现字符串中字符出现次数统计
    在编程过程中,我们经常需要对字符串进行处理。今天,我将为大家分享一个Java示例,用于统计字符串中每个字符出现的次数。让我们一起来看看吧!在日常生活中,我们经常会遇到需要统计字符串中字符出现次数的场景。例如,统计一篇文章中各个字母的出现次数,以便进行词频分析。本文将带大家......
  • Java面试题及答案(就业教程)
    最新常见Java开发面试题、面试常问Java面试题整理(附白话答案)一、Java基础部分面试题1.Java面向对象的三个特征封装:对象只需要选择性的对外公开一些属性和行为。继承:子对象可以继承父对象的属性和行为,并且可以在其之上进行修改以适合更特殊的场景需求。多态:允许不同类的对象......
  • java笔记6
    10.多态多态的概念多态(Polymorphism)是面向对象编程的核心概念之一,它指的是同一个接口可以被多个不同的类实现,或者同一个操作作用于不同的对象时可以有不同的解释和行为。为何要用多态多态的使用使得代码更加灵活和可扩展,它允许编写的代码可以对不同类型的对象执行不同的操作。......
  • 高频Java面试题集锦(含答案)
    第一章-Java篇1、Object中有哪些方法   难度系数:⭐protectedObjectclone()--->创建并返回此对象的一个副本。booleanequals(Objectobj)--->指示某个其他对象是否与此对象“相等protectedvoidfinalize()--->当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾......
  • java 反编译工具之jd_gui
    1下载地址  https://java-decompiler.github.io/2 下载解压后,显示4个文件 3、双击jd_gui.exe启动4、打开file--openfile菜单,选择要处理的jar包或.class文件 4、点菜单“saveallsources",将源文件另存为.zip压缩文件,自行解压即可查看所有代码;附:百度网盘链接 链......
  • Java SE核心技术——10接口
    接口就是一种规范或标准,只要符合这个标准都可以通用,接口的表现在于对行为的抽象。就好比插座,每个厂商生产的插座我们都可以用,这是因为他们有同一个标准,这里插座就是接口。//接口的定义格式与定义类的格式基本相同,将class关键字换成interface关键字,就定义了一个接口public......
  • Java SE核心技术——11多态
    多态的概念多态是指一个变量在不同的环境中有不同的体现,是面向对象特征之一多态就是同一个接口,使用不同的实例而执行不同的操作多态是对象多种表现形式的体现:同一时间发生在不同对象上会产生不同的结果。多态的优点消除类型之间的耦合关系可替换性可扩充性接口性灵活......