GOF和GRASP设计模式之间的区别是什么?

时间:2010-11-24 19:51:23

标签: design-patterns grasp

我对GOF和GRASP模式之间的区别感到困惑吗? 甚至两者都有助于改进面向对象的实践

2 个答案:

答案 0 :(得分:11)

GOF是模式,即经过验证的设计解决方案,可以解决重复出现的问题。 GRASP are principles并且不依赖于任何特定问题域,因此在任何情况下都是如此

答案 1 :(得分:7)

简答设计模式提及 GoF GRASP 设计原则。设计原则比设计模式更抽象。

长答案
软件工程的主要目的是开发适当的软件。 SDLC介绍了顶级软件工程的步骤。 Software Design是SLDC步骤之一。 Object Oriented Software Design是一种流行的软件设计方法。

要执行面向对象的软件设计,有许多不同名称的资源(在书籍,教程和论文中),例如:指南,原则,启发式,模式,样式等。

这些名称之间的差异抽象。顶级是主要原则,其他级别是有助于实现这些主要原则的细节。

顶级

在顶层,教程提供主要原则。 (基于面向对象的分析和应用设计,Grady Booch,等1991) 面向对象的主要原则

  • 抽象
  • 封装(信息隐藏)
  • 层次结构(继承,聚合)
  • 模块化(高内聚和松散耦合)

所有后续原则和模式都与这一主要原则相关,并试图支持和改进它们。

第二级

在第二级资源中,有原则,并试图支持和改进面向对象的主要原则。

  1. SOLID原则
  2. GRASP原则
  3. Law of Demeter-LoD
  4. 等(其他单一命名原则,如LoD)
  5. 第三级

    此级别的资源称为设计参数Gof(四人帮)有第一本关于设计模式的书。有23种设计模式可以支持面向对象设计的主要原则和其他原则。

    在GoF之后,许多书籍都是在特定的编程语言和特定的框架(例如J2EE设计模式,JQuery设计模式等)中使用设计模式的。

    设计模式更加详细,与编程语言非常接近。但是,主要原则(最高级别)和原则(第二级)是如此抽象。

    Forth Level

    在此级别中,资源称为:启发式

    此级别的资源非常详细,而且非常具体。

    最佳资源是面向对象设计启发式(72启发式),Arthur J. Riel出版,1996年

    第五级

    在最后一级,有指南

    所有执行不要避免,......书中的指南可以收集在此组。