# 你说写代码,最常用的3个设计模式是啥?

作者:小傅哥
博客:https://bugstack.cn (opens new window)
原文:https://mp.weixin.qq.com/s/KJMmZED66eWyH4LkyCHbug (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

# 一、前言:望闻问切

🌺 哈喽,大家好,我是技术UP主小傅哥!

哈哈哈,到今天为止,差不多用了3个月里周末和假期的时间,小傅哥在B站的第一套视频《重学Java设计模式》 (opens new window)就全部录制完成了。是的,全网最火🔥的那套设计模式,已经有视频可以对照着学习了。我已经录制完成了,那你有跟住学习打卡吗?🤔

录制视频是小傅哥在去年制定的计划,一方面是想锻炼下自己的面对镜头的表达能力,另外也希望这样的视频可以帮助更多的初学者更快的上手学习,提高自己的编码能力,也能基于这样的能力去阅读一些框架源码。你可能不知道,国外很多优秀的框架源码 Spring、Mybatis 等,都运用了大量的设计原则和设计模式,只有有设计模式的经验,才能读懂这些源码

另外在视频录制中,小傅哥也学习如何出课件、写材料、录视频、剪辑、配音、配动画,顺便学习使用了一些专业的软件,包括:Neural Mix Pro、Final Cut Pro、剪映、Filmage Screen、OBS、Camo Studio 等。也是有了很大的收获,在以后的视频录制中,也会逐步更加娴熟,给大家录制出更有技术、更有质量、更易于学习的视频。

其实可能很多人,在没做一件事前,都想着要把一切都准备好在行动。但其实就像你脑海里过多少遍游泳姿势,只要你不去海边、不下水、不感受,永远也看不到比基尼。所以更有效的办法是要动起来,在行动中补充自己、完善物料、持续迭代。

加油,如果你也想做成一件事,现在就行动起来吧!

# 二、号脉:力不从心

鉴于《重学Java设计模式》 (opens new window)PDF 的场景真实、内容易学、资料免费,已经被众多号主、UP主,当做了引流工具。以至于很多很多码农,都在自己的收藏夹中都有一本这样的PDF。

当然如果能帮助到各位同好研发成长,还是非常好的。不过我也知道其实很多研发伙伴并没有打开PDF去学习,因为只要学习就需要在我的代码仓库下载源码,否则只是看书中的插画并不会太大的收获。

其实很多研发伙伴也不是不学,说先是资料太多了,看任何一个资料都不深入,看一会就放弃了。导致哪一个都没学习明白,但对于xxx学习路线收藏起来的习惯到一点没变。

不过也不能说大家就不爱学习,有时候只是方式不对。就像小傅哥自己在最开始也并没有先拿着一本设计模式的书籍进行学习,因为很多的设计模式都是理论资料,一些案例也没法用到实际的场景,自己当时对优秀源码的积累也补充。**即使有心思写好代码,也力不从心!**估计不少的读者在自己的实际开发中也会有这样的感受。

# 三、诊断:王者荣耀

你知道程咬金吗,嗯,就是那个王者荣耀里拿着两把西瓜刀贼猛的那个,他是三朝元老,经历了隋朝、唐朝、武周。但就是这么猛的一个人物,在年少学习武术的时候,也只是学会了三十六路宣花斧中的前三招,不过就这三板斧使的出神入化。

而程序员学习23种设计模式也一样,没必要在一开始就把所有设计模式都学了,即使学了,你也没有力气都耍出来,就被人家给撂倒了。

那咋办,当然是找3个最常用的,最能解决自己实际问题的学呀。就这3个练熟了,后面写出的代码也就干净了,等这3个悟透了,后面的设计模式在学起来、用起来也就没有那么难了。

那这3个设计模式是哪3个呢,小傅哥推荐:模板 + 策略 + 工厂,只要这三个搞定,再搭配着使用,基本就能解决一大票问题,也能让你代码看上去非常有质量。

设计模式:模板 + 策略 + 工厂

  • 其实这样的结构分层在 Spring 的源码中也有很多体现,它是一种解耦和职责边界分离的设计原则,通过这样的实现方式,让代码就是文档的体现。
  • 而你实际的编码中,如果有类似这样的流程,也可以定义抽象的模板,提供数据支撑的继承和对应策略的配置以及调用处理。当然可能你的逻辑中不需要模板的使用,也可以直接是工厂 + 策略的组合。
  • 这样一种简单设计模式的组合,基本是可以处理掉很多研发所遇到的业务场景的,并随着你的场景迭代,在思考🤔这些设计模式的变种,一点点的熟练才会在充足的积累后,写出更加完善的符合自己需要的结构。

# 四、抓药:仙人指路

好了,当你已经看到这里,我猜你将来一定会成为一个优秀的架构师。因为你走在一条小傅哥趟过的路,哈哈哈!

如果你能完完整整的,按照视频,重点、重点,源码!把这两部分结合起来,全部动手写完,那么你一定会积累非常多的设计模式实用技巧,也能把这些技巧运用到真实的业务场景中。

B站:小傅哥の码场 重学Java设计模式


那学完设计模式,接下来呢?接下来就是实战了,在哪里实战?一方面是像小傅哥一样完成《手撸 Spring》 (opens new window)、另一方面是参与到有大佬带着你做的复杂场景的业务系统。这两方面都能让你学习的设计模式,得到实践的使用。具体路线参考下图:

程序员进阶学习路线

就是这样一个路线,如果你能完整的坚持走下来,薪资涨幅30%~45%没有问题,已经测试验证。同时你可以依照这些学习内容,完善你的简历:小傅哥写的一份硬核简历! (opens new window)