Tag-Archive for » 设计模式 «

也谈设计模式

最近可以用三个字来形容“忙”“乱”“烦”,其实我估计很多人也都这状态,如同家家有本难念的经,人人都有没法说的烦恼。

在这状态下,已经很久没有写一些跟技术相关的东西了,前两天想升级BSD的系统到最新的6.3版,结果cvsup了一个多小时源码树没有完,就心烦气躁的Ctrl+C放弃了,最近因为诸多项目启动,连续一周多写系统分析文档,一个项目一整就是三十来页的分析文档,其实还是很草的那种,实在也没有精力和心思给写得彻彻底底的,估计真完全弄踏实了,少说也得上百页才能算合格的系统分析文档。

写这两份文档的中间儿,想到了我的兄弟们在拿着文档开发过程中可能会面临的一些问题,其中最担心的就是在面向对象开发的时候面临的对象间关系处理问题,专业术语讲,那就是设计模式的问题。

这东西也老生常谈了,说实话,如同大学里面学的那几门计算机基础知识一般,设计模式实在很重要,貌似很基础的东西,一讲大部分都能明白,但是真正用起来和项目结合,还是一头雾水,这就跟咱们大学学数据结构一样,回想起来,有几个在后来工作中用过那些最基本的二叉树、链表、图一类的东西? 原来3721的老哥李钊说得很经典,中国为啥计算机科学落后,缺少的不是高级程序员,缺少的是对计算机基础知识理论理解透彻的人。很多武侠小说里面的高手,到最高境界不是会多少套路和拳法,而是用最简单的招式化解一切高深的套路。

相比之下,设计模式对于面向对象开发来说,有点儿类似的味道,会写类、继承、重载、抽象一类的东西不难,但是把这些东西用更简单的思路来看待和组织就有难度了,设计模式不是把他们复杂化,而是为了让问题更简单。把简单的东西发挥到极致比把复杂的东西学会往往更有价值。

说到这里,估计也看出我这还是没有在讲技术,是啊,一真进入技术话题,设计模式不是这么简单三言两语能说明白的,常见的23种模式,经典的21种,随便一种都得且说呢,记得看过一个哥们的blog上用星际争霸的实现思路来讲述了大部分的设计模式基础,感觉真不错,大家可以google一下。

今天写这些,主要是因为最近的几个项目系统分析文档中涉及到不少地方需要运用设计模式,于是乎准备在最近给我的兄弟们找个时间讲堂课,说说常见的设计模式的应用,最近正准备动手弄个PPT,所以就先酝酿酝酿思路和情绪。

真正有兴趣、有决心、有信心、有恒心深入一下的朋友,去看看这本书吧:《设计模式》,经典至极,该书作者均是国际公认的面向对象软件领域的专家,号称“四人帮”。