这两个概念非常相似,很难区分它们。
请举例说明如何区分它们。
GRASP设计模式,正如在这里所说的那样(GRASP中的信息专家和MVC中的模型是否相同?),是设计原则,支持您评估设计决策和实现。
GRASP中的“内聚性”是一个评估性的设计模式,与“耦合性”并列。因此,您必须使用它们来分析您的设计,以确定它有多么内聚和松散耦合,从而直接增强可重用性和可扩展性。
另一方面,“信息专家”可以帮助您确定应该将特定责任赋予哪个类。它告诉您将某个责任分配给具有最多相关信息的类。
因此,在简单的购物车用例中,您会将ShoppingItem分配给calculateItemPrice(),基于数量和单价,将ShoppingCart分配给calculateTotalPrice()。
这成为一个关键因素,注意大多数GOF设计模式实际上都支持这个GRASP概念。
最重要的是,如果您在设计中应用了信息专家模式,它应该为您提供高内聚性,以评估您的设计。这就是信息专家和内聚性如何携手并进的方式,就像所有其他GRASP模式一样。