设计模式=要解决问题+思想+打法

13年前
设计模式=要解决问题+思想+打法


我们很多情况下,在以OO思想思考问题时候不得不考虑:

1、要解决问题:

怎么实现架构的高内聚低耦合

考虑权重:代码复用+可扩展+可维护性

结合现实情况,对需求进行评估,对代码架构进行分析。


2、思想

思想 = 原则:
比如开闭,职责单一,依赖倒转,里氏替换,迪米特。


对变化的理解:

变化始终存在,无论模块多么封闭,都不可能完全封闭。设计人员必须对于他设计的模块应该对哪种变化封闭做出选择,必须先猜出最有可能发生变化的种类,然后构造抽离这些变化。

面对需求,对程序的改动是通过增加新的代码进行的,而不是更改现有的代码。

最初编写代码时候,假设变化不会发生,当变化发生时,我们就该抽象来隔离以后发生同样的变化。(重构)

拒绝不成熟抽象和抽象本身一样重要。

高手是用同样代价获得最大收益或者最小代价获得同样收益

3、打法

很多时候,思想对了,往往方针落不了地或者有问题,关键还是经验不足。

这也是最核心一步内容,没有coding经验的,代码驾驭能力很弱。

我们在学习到第三步,打法时候,真正才能体验效果。前面2点,都是理论,说白了都是银枪醋蜡,忽悠。。。


检验了你打法就是实践