组件化, 代码复用, don’t repeat yourself, 听到这些词我都已经 ptsd 了
这就像, 产品经理说 '这个地方要小小地改一下’ 一样, 勾起了我痛苦的回忆.
因为很多代码是揉在一起的, 改了这个, 那个就崩了
这所以出现 "代码揉在一起” 的问题, 是因为 "追求代码复用, 避免代码重复”,
出发点是好的, 但做的过程中错了
很多时候我们将看见的重复代码 merge 为一个 公共组件或者函数
然后通过 参数, flag 去控制其执行分支
这使得代码执行分支被混在一起, 代码变得更复杂
然后就有人跳出来, 说 "我们不能用 if else, 也不能用 switch 语句, 我们要用多态”
当听见多态这个词的时候, 我又PTSD 了
这里的多态是指抽取一个基类, 通过创建不同的子类来实现不同的条件分支
但往往变成, 基类里的东西非常少, 或者基类里的东西经常被子类重写了
这意味着, 这个基类的抽象, 很不稳定, 使得这个基类变成了 '鸡肋’
多态 无法减少 代码执行分支 带来的复杂度