我对GOF和GRASP模式之间的区别感到困惑吗? 甚至两者都有助于改进面向对象的实践
答案 0 :(得分:11)
GOF是模式,即经过验证的设计解决方案,可以解决重复出现的问题。 GRASP are principles并且不依赖于任何特定问题域,因此在任何情况下都是如此
答案 1 :(得分:7)
简答:设计模式提及 GoF 。 GRASP 是设计原则。设计原则比设计模式更抽象。
长答案:
软件工程的主要目的是开发适当的软件。 SDLC介绍了顶级软件工程的步骤。 Software Design是SLDC步骤之一。 Object Oriented Software Design是一种流行的软件设计方法。
要执行面向对象的软件设计,有许多不同名称的资源(在书籍,教程和论文中),例如:指南,原则,启发式,模式,样式等。
这些名称之间的差异是抽象。顶级是主要原则,其他级别是有助于实现这些主要原则的细节。
在顶层,教程提供主要原则。 (基于面向对象的分析和应用设计,Grady Booch,等1991) 面向对象的主要原则
所有后续原则和模式都与这一主要原则相关,并试图支持和改进它们。
在第二级资源中,有原则,并试图支持和改进面向对象的主要原则。
此级别的资源称为设计参数。 Gof(四人帮)有第一本关于设计模式的书。有23种设计模式可以支持面向对象设计的主要原则和其他原则。
在GoF之后,许多书籍都是在特定的编程语言和特定的框架(例如J2EE设计模式,JQuery设计模式等)中使用设计模式的。
设计模式更加详细,与编程语言非常接近。但是,主要原则(最高级别)和原则(第二级)是如此抽象。
在此级别中,资源称为:启发式。
此级别的资源非常详细,而且非常具体。
最佳资源是面向对象设计启发式(72启发式),Arthur J. Riel出版,1996年
在最后一级,有指南。
所有执行,不要,避免,......书中的指南可以收集在此组。