[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真的让人很难不爱,只不过失去了,才显得珍贵吧.
欲买桂花同载酒,终不似,少年游。