GRASP信息专家和GRASP内聚性有什么区别?

4

这两个概念非常相似,很难区分它们。

请举例说明如何区分它们。

2个回答

4

我们的课程结构不涉及编码,完全基于理论。我应该如何练习这些概念?当我编写一些代码时,又如何知道自己对错呢? - Vizzle
1
“当我编写代码时,如何知道我是对还是错?” 你应该通过实践来获得理论知识,而不是通过理论来获得实践经验。但无论如何,理论也很重要。编写简单的程序,探索 https://github.com/....祝你好运。 - pvllnspk

0

GRASP设计模式,正如在这里所说的那样(GRASP中的信息专家和MVC中的模型是否相同?),是设计原则,支持您评估设计决策和实现。

GRASP中的“内聚性”是一个评估性的设计模式,与“耦合性”并列。因此,您必须使用它们来分析您的设计,以确定它有多么内聚和松散耦合,从而直接增强可重用性和可扩展性。

另一方面,“信息专家”可以帮助您确定应该将特定责任赋予哪个类。它告诉您将某个责任分配给具有最多相关信息的类。

因此,在简单的购物车用例中,您会将ShoppingItem分配给calculateItemPrice(),基于数量和单价,将ShoppingCart分配给calculateTotalPrice()。

这成为一个关键因素,注意大多数GOF设计模式实际上都支持这个GRASP概念。

最重要的是,如果您在设计中应用了信息专家模式,它应该为您提供高内聚性,以评估您的设计。这就是信息专家和内聚性如何携手并进的方式,就像所有其他GRASP模式一样。
资源:http://www.cs.bgu.ac.il/~oosd051/uploads/stuff/ApplyingUMLandPatterns.pdf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接