设计模式的个人感悟总结

[Musings]
花了差不多断断续续一周的时间(10 天其实是,但是中间断了几天,干别的事去了哈哈哈),把所有的设计模式全部过了一遍
其实说白了设计模式在干嘛,就是在把屎山代码里写的很多 if else 来优化,以往可能觉得,用个 switch 来替换 if else 就行了,其实远远不够
设计模式说白了就是站在设计的角度来考虑,更多的去利用 java 的语法特性,抽象类,接口,多态,来使得代码的结构更清晰,减少超级类,超多 if else 的逻辑

// 从前有个”万能上帝类” ❌
public class GodClass {
public void doEverything(String type) {
if (type.equals(“A”)) { /_ 100 行代码 / }
else if (type.equals(“B”)) { /
200 行代码 / }
else if (type.equals(“C”)) { /
150 行代码 _/ }
// … 越来越多的 if-else
}
}

// 经过设计模式改造后 ✅
class AHandler { public void handle() { /_ 专注 A 的事 / } }
class BHandler { public void handle() { /
专注 B 的事 / } }
class CHandler { public void handle() { /
专注 C 的事 _/ } }

所谓的五大原则 SOLID 的大白话版本就是

原则 我的理解 通俗比喻
单一职责 S 把超级类打散 一个厨师不要又切菜又炒菜又洗碗
开闭原则 O 打散后的自然结果 加新菜不用重装修厨房
里氏替换 L 保证运行时正确性 儿子要像爹,不能乱改家规
接口隔离 I 不要定义超大接口 别造瑞士军刀,用专门的工具
依赖倒置 D 面向接口编程 订餐看菜单,不用管厨师是谁

等掌握了设计模式之后,还要记住一个原则: 不要过度设计,不要炫技!
KISS原则就出来了,keep it simple, stupid!

之前 Tony 老板问过我一个问题我记得很清楚,他说:“你觉得什么样的代码是好代码,更好的算法,更优雅的写法,还是更少的 bug“
我想了想,说”不确定,我觉得是代码的可读性吧,毕竟后续还有其他人要维护“
他说:”没错,如果我们写的代码连自己三个月后都看不懂,那凭什么要求别人能维护?“
物是人非了,都在匆匆忙忙中被记忆斑驳了,想起那些老板,忍不住有些泪目. Digital team真的让人很难不爱,只不过失去了,才显得珍贵吧.
欲买桂花同载酒,终不似,少年游。