跳转至

设计模式

我对设计模式的理解

写一些Java技术相关的设计模式,使用Java代码样例理解,理论少一些,代码就是一种语言,它自己会说话。 我介绍设计模式大致从是什么,为什么,怎么做三个大方向上写。 同时我又觉得设计模式这种东西,仁者见仁智者见智,没有绝对的好坏,只有它适合的场景,你用不用的好 是一种能力,你实战的时候能不能判断出某一种设计模式到底适不适合你的这个业务,这也是一种能力, 你写代码有没有有意识的去使用?有没有强搬但是其实它完全没必要用?

我周围有相当一部分同事,认为设计模式其实也就那样,虽然可以写出花来,真的场景要用到设计模式的时候寥寥无几, 甚至有这样的情况,意识到这里可以用、很合适用, 也不会去用:因为设计模式是要消耗码农们的时间精力的。在我们这样一种996常态化的职业环境下,设计模式它有一点奢侈, 大多数时候我们都是没时间去理解,把业务的功能实现才是第一位的,写完一个需求就是下一个(可能是我幸存者偏差吧)。 这是一种情况。

还有就是有一些程序员对于技术的那种追求,有一点像孔乙己的那件长衫,过于吹捧神话设计模式的功能, 很爱用,哪里都要用一下,结果功能不能按时做出来,代码还不那么让人看得懂, 是不是要反思一下代码写的好看真的重要么?你用设计模式真的有必要么?

那么在遇到这两种情况后,我们能反思得到什么?现在的很多项目,都是屎山,当你看到屎山的时候, 你明知有一种方式可以让代码简单一点,松耦合,可以发挥设计模式真正的威力的时候,你会动手改造么?理论终归是理论,现实是复杂的, 我也只能尽量保证自己在能吃饱饭的前提下把代码写好,这才是我这个普通程序员能做的最现实的举动。 所谓高山仰止,景行行止,虽不能往,然心向往之,我想这个“往”,其实重不重要,完全看你。 别人做了你可以欣赏他的勇敢与责任,别人没有做也不用在心里默默地去苛责他的懒惰。毕竟写代码到底只是一份工作。

所有设计模式开篇的图片来自于 Refactoring.Guru