java中的23种设计模式哪些是必须要掌握的?

嗯,没有

很不幸

几乎没有一个设计模式,是你必需掌握的

就以你说的单例模式为例

现在版本的java

实现singleton非常简单,你只需要

enum Singleton{SINGLETON//你要实现的方法,属性等,写在这里,这些跟普通的class一样}

好了

所以其实单例在enum这特特殊的class出来之后,基本上这个模式就死掉了

就你不需要费心思去写那么一大堆的单例的实现,因为没有必要

记住,enum就是内存中有限个对象的class,class理论上可以无限多个对象嘛,而单例,双例甚至三例这些,都可以看成是enum的特殊情况

所以你可以用enum实现单例

搞定了

之前之所以有那么多设计模式,还23种啥的,一个重要原因是,当时的java,语言特性较弱

而且当时java的语法进化的速度也比较慢,好几年才出一个版本

所以当时为了弥补java的一些不足,人们搞出了一大堆设计模式

而这些设计模式最早也不是针对java,而是针对c++的,gang of 4的那本书,有三个语言版本,java是最年轻的,最早是c++和smalltalk,然后java流行之后,才出了java版

但是随着java语言自身的演化,你就会发现,那些古早的经验啊,比如这些设计模式

就没用了

你可以把代码用很简洁的方式写出来,完全没有必要搞那么复杂

再比如spring的di,对吧,inject

这个在java的static import出现之后,就变得毫无价值

你不需要spring和di,你也能用static import实现相同的效果

当然这里面会有一些差异,但是大同小异了

所以现在外国啊,对于spring就没有那么积极了,相反,像red hat这种公司

就在大搞特搞quarkus,前一段quarkus的人在twitter上私信我

vert.x中国用户组能不能出个人去交流

我想了下,疫情加上去北京路途遥远,问了一圈,也没人愿意去,算了算了,婉拒了

还是让red hat的人自己去组织了

你看这两个例子就变得没什么用

再比如,visitor模式,这个算是比较复杂的一种了吧

这个在switch的pattern matching得到强化之后,也就变得没用了

具体的例子,我也不想写了,因为要解释visitor模式

switch pattern matching再过一年左右就要正式下发生产了,所以现在这个时间点

费尽力气去解释visitor模式毫无价值和意义

有兴趣的看一下下发视频教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值