一行代码实现设计模式中的单例
2026/7/21 5:21:07 网站建设 项目流程

给你们看一段有意思的代码,就一行代码,实现了设计模式中的单例。

objectConfig

上面是用Scala语言实现的,也即是单例模式,在Scala就是一个特性而已,毕竟单例模式原本想表达的意思是:

整个系统只有一个实例。

但是在java里想实现这个,就得好几行代码了,如下:

publicclassConfig{privatestaticfinalConfigINSTANCE=newConfig();privateConfig(){}publicstaticConfiggetInstance(){returnINSTANCE;}}

这个跟java这门语言的设计有关,当时设计这门语言的java之父,对程序员是持悲观态度的,他不想给程序员太多的权利,因此把语言设计的严谨安全,这个就会导致语言的表达力受损。

所以你才会看到,只要是用java实现的,不管是业务项目,开源框架,都在用设计模式。

那设计模式本身有问题吗?

完全没有问题的。

它只是一种解决某个问题的模式而已,比如:

  • Factory,真正解决的是对象创建和对象使用解耦。
  • Strategy,真正解决的是行为可以自由替换。
  • Observer,真正解决的是发布者不用关心订阅者。

所以日常开发中,你应该先搞清楚要解决的问题是什么,是否可以用一下设计模式。

仅此而已。

假设你认为这个时候全局需要单实例,如果用的是java语言,那就老老实实写那十几行代码,除非后续java把单例作为一个语言特性。

而如果用的是scala,那就一行代码就够了。

至于有人在喷设计模式的,理由无非就是:

  • 确实存在跟风的问题,用设计模式进行过度设计;
  • 而java本身语言设计的问题,又导致必须写很多的代码来完成这个设计模式,导致代码里充斥着这种不太容易看懂的代码;
  • 程序员功力不够,不知道何时用设计模式,何时不用。

这个跟设计模式没有任何关系,别往它身上扯。是使用的人滥用而已。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询