龙空技术网

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

我南柯一梦 85

前言:

眼前咱们对“java设计模式及例子”可能比较关怀,我们都需要学习一些“java设计模式及例子”的相关文章。那么小编在网摘上汇集了一些关于“java设计模式及例子””的相关文章,希望姐妹们能喜欢,姐妹们一起来学习一下吧!

嗯,没有

很不幸

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

就以你说的单例模式为例

现在版本的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模式毫无价值和意义

23种设计模式视频教程_b站最全的最细致的Java设计模式_java工厂模式视频教程_java工厂模式入门到入魔最全视频教程_java设计模式入门_哔哩哔哩_bilibili

标签: #java设计模式及例子