设计模式总结——程序猿的武功秘籍(上)
万年前,人类用肢体力量来扩展地盘、获取食物,那时候比的是发育。后来人们学会了使用工具。開始利用石头、棍棒。
再后来,人类有了文明,刀枪棍棒使得身体素养不是唯一决定强弱的唯一条件。再后来。一些聪明人依据人们的打斗习惯再增加哲学的思考,以攻守进退、运动疾徐、刚柔虚实为原则。发明了武术,即使一些身体素养不好的人。依据自己的情况学习对应的武术也能成为武术高手。这都要感谢发明武术秘籍的人,也要感谢社会的发展对武术人才的需求。
到如今,人类发明了火枪。即使一个残疾人也能把一个壮汉打死,这在曾经是不可想象的。
几十年前。计算机刚刚被发明, 人们用它来解决一些简单的问题,程序猿编一些简短的代码实现些简短的功能。他们编写过程随心所欲,个成风格。随着社会对计算机及其功能的需求急剧增大。留给程序猿的问题也越来越大,这时不是每一个程序猿都能编写出合格的软件。人们陷入了软件危机,仅仅有个别天才干利用自己的智慧解决好问题。
他们达成一致,总结出解决这个问题的方法供后人学习。
以致我们学习几年编程技术,就能达到一定水平。随着这些“武功秘籍”的出现,对程序猿的要求越来越低。人们使用好工具,懂原则、模式就能编写代码。我相信。过几十年。程序猿用嘴说句话对应的软件就能编写出代码。
随着对《设计模式》的学习,我觉得这门学科就是程序猿的武功秘籍,它是前辈们智慧的结晶。告诉了我们可能遇到的各种问题以及解决方法。从机器语言到高级语言。从过程式的开发到面向对象式的开发,这是软件开发复杂化的体现。也是技术前进的体现。
软件开发的复杂化体现之中的一个就是需求的多变性。
面向过程通过划分功能模块,通过函数相互间的调用来实现,需求变化时,就须要更改函数,而修改的函数有可能在多处被调用。关联多种数据。使得代码维护和调试变得机场艰难。
峰回路转,面向对象的编程方式的诞生,攻克了变化带来的问题。面向对象关注的是对象。能够定义自己负责的事物,做要求它自己做的事情。开发人员。把需求理解成一个一个的对象。然后制造这些对象,让他们互相调用,直至符合业务须要。这时候,假设需求再发生改变。我们能够封装这些变化区域,从而更easy将代码与变化产生的影响隔离开来。
有了面向对象技术。开发人员能够通过代码的设计使需求的变化不至于产生太大的影响,可是这也对设计开发提高了难度。面向对象设计的复杂性使总体开发再次陷入困境。而设计模式的出现给了我们解决方式,使我们能站在巨人的肩膀上解决复杂的问题。