Skip to content


摘自_设计模式解析(1)

1. 正确分析和设计要求我们在互相矛盾的关注点中找到平衡,必须决定问题的哪些方面是设计的重点,或者应该让系统防范哪些变化.寻找平衡必须成为做出决策的第一要务.不要让细节转移了你的注意力.分析人员都可以犯的常见错误是:在开发过程中过早的深入细节,因为处理细节是比较容易.细节的解决方案总是显而易见的,但并非肯定是最好的入手点.细节问题的处理应尽可能推后.

2. Facade模式简化了接口,而adapter模式则将一个已有的接口转化成另一个接口.

3. 优先使用对象组合,而不是类继承.

4. 过度使用继承:(以下作者的感悟,我觉得很有道理)
“在我还是一个初级的面向对象分析时,曾经很喜欢利用继承,使用特殊情况解决这里碰到的问题.我喜欢继承的思想,因为他们看起来新颖而且功能十分的强大.只要可以继承的地方都使用了继承.似乎对许多设计师来说这很正常,但是其实这是很幼稚的:有了新的”锤子”,所有的东西看上去都成了钉子.糟糕的是许多面向对象的设计方式关注点都放在了通过特化处理,从已有的类派生新类上.正是对这种对对象的’is-ness’性质的过度关注,程序员往往会在巨大臃肿的类层次关系中创建对象,这种层次开始时可能还能正常工作,但是随着时间的推移将变得越来越难以维护.而当我成为一个有经验的面向对象设计人员之后,仍然深陷于继承的设计方式之中,还是根据’is-ness’性质观察类的特点,无论结构变得多么的复杂.用设计模式进行思考最终救我于泥潭之中,自此学会了用对象的职责而不是其结构来思考问题.有经验的设计分析师都已经了解到应该有选择的使用继承.才能发挥其优势.使用设计模式,将有助于加快这一学习进程.其中就包括从’为每种变化使用不同的特化’(继承)到’将变化转移到使用或拥有这种变化的对象中’(组合)的转变”

5. 一条规则,实现一次:
‘有一条重要的实现策略应该遵循:规则只在一个地方实现.换言之,如果做什么事只有一条规则,只实现一次.这通常会使代码中出现许多小的方法,所增加的代价很小,却消除了重复,而且经常可以预防将来可以出现的许多问题。重复的害处不仅在于输入工作成倍增加,还因为将来有东西发生变化时,可能会忘记在所有需要地方进行修改.’

6.衡量设计质量的一种方法是:看它是否能很多好应对变化。

7。模式并不总能提供十全十美的解决方案,但是因为模式是众多设计人员多年的集体智慧结晶,所以它们通常优于你我自己有限时间所能提供的解决方案。

欢迎大家谈谈关于设计模式的一些想法

Posted in 设计模式.

Tagged with .


2 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. may says

    貌似兄弟的博客太专业了
    对同行来说很不错
    不过我基本上都看不懂
    可不可以发点关于介绍wordpress相关的php文章
    比如说怎么调用函数,代码都代表什么意思等等
    估计会有些市场

  2. 果沟 says

    谢谢may同学建议,
    不过的目前博客只定位于学习备忘,以及技术感悟.还没考滤到市场这一块呵呵.(非盈利博客)
    wordpress这一块我要是有什么心得的话,我也会不保留的写出来.目前wordpress这一块
    http://fairyfish.net/ 做得不错



Some HTML is OK

or, reply to this post via trackback.