A.1 设计模式和设计原则

A.1.1 设计模式和设计原则的关系

面向对象的分析设计有很多原则,这些原则大多从思想层面给我们指出了面向对象分析设计的正确方向,是我们进行面向对象分析设计时应该尽力遵守的准则。

提示

而设计模式已经是针对某个场景下某些问题的某个解决方案。也就是说这些设计原则是思想上的指导,而设计模式是实现上的手段,因此设计模式也应该遵守这些原则,换句话说,设计模式就是这些设计原则的一些具体体现。

A.1.2 为何不重点讲解设计原则

既然设计模式是这些设计原则的具体体现,那也就意味着设计模式的思想上的根就是这些设计原则了,没错,可以这么认为。

这样一来,有些朋友就会很疑惑了,那么为何不重点讲讲设计原则呢?对于这个问题,我们有如下的考虑。

■ 设计原则本身是从思想层面上进行指导,本身是高度概括和原则性的。只是一个设计上的大体方向,其具体实现并非只有设计模式这一种。理论上来说,可以在相同的原则指导下,做出很多不同的实现来。

■ 每一种设计模式并不是单一地体现某一个设计原则。事实上,很多设计模式都是融合了很多个设计原则的思想,并不好特别强调设计模式对某个或者是某些设计原则的体现。而且每个设计模式在应用的时候也会有很多的考量,不同使用场景下,突出体现的设计原则也可能是不一样的。

■ 这些设计原则只是一个建议指导。事实上,在实际开发中,很少做到完全遵守,总是在有意无意地违反一些或者是部分设计原则。设计工作本来就是一个不断权衡的工作,有句话说得很好:“设计是一种危险的平衡艺术”。设计原则只是一个指导,有些时候,还要综合考虑业务功能、实现的难度、系统性能、时间与空间等很多方面的问题。

■ 设计模式本身就已经很复杂了。在一本书中很难再去深入地探讨这些设计原则,这样也避免出现过多的重点内容,导致大家无所适从。

本书的目标是想与朋友们深入地探讨设计模式而不是设计原则。因此我们选择不去深入讲解设计原则。事实上,即使你不懂这些设计原则,对本书的阅读也没有太大的影响,只是在一些问题认识的深度上可能会有一点阻碍。

基于同样的道理,这里也没有过多从重构的角度去讲述设计模式。

当然,在某些设计模式中,明显地体现了某些设计原则,我们也还是会与朋友们一起来讨论和分享的。

提示

这里为不熟悉这些设计原则的朋友,简要准备了一些常见的、基本的面向对象设计原则的知识,可以先阅读这些内容,然后再回去看设计模式的内容,可能会有一定的帮助。但请注意,这并不是面向对象设计原则的全部,更多的知识,有机会再与大家一起分享。