简答:
GoF被提到设计模式. And GRASP are 设计原则。设计原则比设计模式更抽象。
长答案:
软件工程的主要目的是开发合适的软件。SDLC https://en.wikipedia.org/wiki/Systems_development_life_cycle呈现了顶层软件工程的步骤。软件设计 https://en.wikipedia.org/wiki/Software_design是 SLDC 步骤之一。和面向对象的软件设计 https://en.wikiversity.org/wiki/Object_Oriented_Software_Design是一种流行的软件设计方法。
为了进行面向对象的软件设计,有多种不同名称的资源(书籍、教程和论文),例如:指南、原则、启发式、模式、样式等。
The 差异这些名称之间是抽象其中。顶层是主要原则,其他级别是有助于实现这些主要原则的细节。
顶层
在顶层,提供教程主要原则。 (基于面向对象的分析和应用程序设计,Grady Booch 等人,1991 年)
面向对象的主要原则
- 抽象
- 封装(信息隐藏)
- 层次结构(继承、聚合)
- 模块化(高内聚和松耦合)
后续的所有原则和模式都与这个主要原则相关,并试图支持和改进它们。
第二级
在第二级资源中有原则并尝试支持和改进面向对象的主要原则。
-
SOLID https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)原则
-
GRASP https://en.wikipedia.org/wiki/GRASP_(object-oriented_design)原则
-
德米特定律 https://en.wikipedia.org/wiki/Law_of_Demeter
- 等等(其他单一命名原则,如 LoD)
第三级
这种级别的资源称为设计模式. Gof https://en.wikipedia.org/wiki/Design_Patterns(四人帮)有第一本关于设计模式的书。有 23 种设计模式支持面向对象设计的主要原则和其他原则。
GoF 之后,出现了许多关于在特定编程语言和特定框架中使用设计模式的书籍(例如 J2EE 设计模式、JQuery 设计模式等)
设计模式更加详细并且非常接近编程语言。然而,主要原则(顶层)和原则(第二层)是如此抽象。
第四层
在这个级别,资源称为:启发式.
这个级别的资源比其他组更详细、更具体。
最好的资源是面向对象设计启发法(72 启发式),Arthur J. Riel 所著书籍,1996 年
第五级
在最终级别,有指南.
All Do It, 不要这样做, Avoid,...书籍中的指南可以在这个组中收集。