设计原则是一种指导性,比较抽象的理念。而设计模式是为了实现设计原则的一种良好的实践经验。
在接触了一段时间面向对象的程序设计后。不可不学的首先就是设计模式。使用设计模式的目的就是使代码变得更加的清晰,易读,易理解,可重用,可拓展,已维护。
他所带来的好处多多,付出的代价可能只是写代码时需要多写几行。相对于以上的优点,这点代价是微不足道的。
在我看来。实际上并不存在固定的设计模式。设计模式只是对 面向对象的基本原则 的一种良好的实现或者说是一种经验总结,这种经验的总结可以是多样的。(当然,这种实现也会有瑕疵,有利必利弊嘛)。甚至没学过设计模式的人也可能用过设计模式,但那仅仅是无意识的,这种实践并不会经常出现。
遵循设计原则,可以使我们的软件更具灵活性,强壮性。但灵活是需要付出代价的,由多态带来的性能损失就是最明显的一个问题。所以我们需要权衡,需要做出选择,在灵活与性能之间做出选择。
追
本溯源,促使我们使用这些原则的原因是为了满足需求的变更,于是需求分析就显得格外重要。然而不管怎么充分的需求分析都可能遭遇需求变更,于是预测变化就
成了一个让人头痛的事。还是让我们来看看敏捷设计(XP)是怎么解决这些问题的:"敏捷开发人员不会对一个庞大的预先设计应用那些原则和模式,相反,这些
原则和模式被应用在一次次的迭代中,力图使代码以及代码所表达的设计保持干净。"也就是说敏捷设计通过快速的迭代来刺激变化,让这些变化及早暴露,再根据
变化进行相应改动。很明显这要比一次性完整设计轻松容易的多。
软件开发的全部艺术就是权衡:在简单与复杂之间权衡,在一种方案与另一种方案之间权衡。如果把每个问题、每个权衡的利弊都考虑得清清楚楚,恐怕开发一个应用程序的成本会高得惊人。所以,很多时候我们更依赖自己的审美眼光,用平静的心去设计一个赏心悦目的系统。
面向对象的基本原则 与 设计模式