我真的很困惑GOF和GRASP模式之间的区别?即使两者都有助于改进面向对象的实践
发布于 2010-11-25 03:59:05
GOF是一种模式,即针对重复出现的问题的经过验证的设计解决方案。GRASP are principles,并且不绑定到任何特定的问题域,因此在任何情况下都是正确的
发布于 2017-12-31 03:58:07
Short Answer
在GoF中提到了设计模式。和GRASP是设计原则。设计原则比设计模式更抽象。
Long Answer:
软件工程的主要目的是开发一个合适的软件。SDLC在顶层介绍了软件工程的步骤。Software Design是SLDC的步骤之一。而Object Oriented Software Design是一种流行的软件设计方法。
为了进行面向对象的软件设计,有许多不同名称的资源(在书籍、教程和论文中),例如:指导原则、原则、启发式、模式、样式等。
这些名称之间的是它们的抽象。顶层是主要原则,其他层是帮助实现这些主要原则的细节。
顶级
在顶层,教程介绍了Main Principles。(基于应用程序的面向对象的分析和设计,Grady Booch,et al.1991年)
面向对象的主要原则
所有后续的原则和模式都与这一主要原则相关,并努力支持和改进它们。
第二级
在第二级资源中,有原则、原则和努力支持和改进面向对象的主要原则。
第三级
这一级别的资源称为的设计模式。Gof (四人帮)有第一本关于设计模式的书。有23种设计模式支持面向对象设计的主要原则和其他原则。
在GoF之后,许多关于在特定编程语言和特定框架(例如J2EE设计模式、JQuery设计模式等)中使用设计模式的书籍。
设计模式更详细,更接近编程语言。然而,主要原则(在顶层)和原则(在第二层)是如此抽象。
第四层
在这个级别,资源称为:启发式。
这个级别的资源比其他组的资源都非常详细和具体。
最好的资源是面向对象设计启发式 (72启发式),由Arthur J.Riel著,1996年
第五级
在最后一层,有指南。
All Do It, Do‘t Do it,,...书中的指南可以在这个组中收集。
https://stackoverflow.com/questions/4270912
复制相似问题