一直都对设计模式有一种膜拜之情,觉得设计模式是一种高深的技术,一年前大致看了一遍23种设计模式觉得就是一些固定调用,继承,派生的方式,以为记住就可以了。而对设计原则和设计思想视而不见。
再经过了一年的学习和项目经验后在来重新学习设计模式,发现自己有了一些新的思考:
1、 设计模式是思想,不是固定套路。是为了更好地让代码适应变化。
2、 设计模式是为了应对局部变化而产生的。如果程序没有变化,那么就不需要设计模式,如果程序到处都在变化,那么也不需要设计模式,因为设计模式的核心思想就是把不变的“赶”到一起,把变化的“赶”到一起,当需求变化的时候,就只需要集中修改“变”那一部分,从而减少需要修改的范围,当需求变化时,提高软件适应性。
笔者自己学习设计模式的几个误区:
1、 设计模式用好了,代码就不需要改了。这是我当时天真的认识,现在看来其实是极其荒谬的。如果需求改变没有导致代码的变化,那么这就不算需求变化。可以说当需求改变,代码一定是要改变(增加、删除、修改)的。
2、 拿到需求就考虑该用什么设计模式。这也是一个误区,拿到需求,根本就没有变化,是不需要设计模式的,这纯粹是一种“为赋新词强说愁”。不为变化而设计的设计模式都是耍流氓。
3、 我能一来就想到最好的设计模式。现在我认为这也是不对,设计模式在代码中的使用也应该是一个迭代改进的过程,是在写代码的过程中感觉到了不爽,然后进行修改,提取而得到的结果。
在后面的的文章中,笔者将就集中常用的设计模式用尽可能直白的语言进行论述,并分析经典的案例,看看那些经典的代码,框架是怎么把这些变化赶到一起去的。