对软件设计来说,23种基本设计模式就像象棋里面的基本杀法一样。就算你从来没学过基本杀法,从来没听说过二鬼拍门、八角马和双车错这种专业术语,也不代表你一局都赢不了
那是不是说基础设计模式跟基础杀法都是形式主义的产物,用来装X的无用知识?
怎么可能,就拿二鬼拍门来说,没学过的棋手往往会在多兵残局中落下风,甚至必胜局被顶和(比如 三高兵必胜士相全 的残局,虽然是必胜,但必须做出二鬼拍门的棋形,这也是唯一的赢法。但如果没学过,往往会被顶和)
你应该注意到了,我刚刚用的词是 做出
。学过基本杀法的人从一开始就会思考如何形成基本杀法里描述的棋形,所以会比没学过的人少走一些弯路,对于激烈的对攻局来说,最后的胜利也经常会因为一两步的顺序而易主
23种基本设计模式虽然不至于让你跟谁决出生死,但是对于软件设计来说,上到系统设计,小到某个组件关节,通常都是有多种方案可供选择的。设计模式为你提供的是前辈们总结出来的最优解。同时通过了解设计模式,你也能理解他们当年的解题思路,这种思路的根据是什么,以及一些四海之内皆可用的原则
设计模式不会让你立刻成为设计系统的大师,相反你在消化的过程中可能还要经历很长一段看到什么都想用模式的菜鸟阶段。但是别灰心,总有一天,你会发现你在写代码时会突然冒出这样一个念头:
——咦,我刚刚的这段实现,不就是 xx 模式吗?
创建型模式
创建型模式抽象了实例化过程。他们帮助一个系统独立于如何创建、组合和表示他的那些对象。
结构型模式
结构型模式涉及如何组合对象以获取更大的结构
行为型模式
行为型模式涉及算法和对象间职责的分配。行为型模式不仅描述对象或类的模式,还描述它们之间的通信模式
还可以通过专栏【设计模式】进行访问,欢迎点赞、收藏或订阅~