どちらの概念も非常に似ているため、どちらがどちらであるかを判断するのは困難です。
それらをどのように区別するかの例を挙げてください。
すべての GRASP の概念はリンクされているため、それらをすべてまとめて検討する必要があります。
コーディングの練習なしにこれらの概念を学ぶべきではなく、コードを書いたりリファクタリングを行ったりしてください。
GRASP 設計パターンは、ここ ( IS Information Expert from GRASP と Modell from MVC は同じですか? ) で非常に正しく述べられているように、設計原則であり、設計の決定と実装を評価するのに役立ちます。
GRASPにおける「結束」は「結合」と並んで評価される設計パターンです。したがって、それらを使用して設計を分析し、再利用性と拡張性を直接強化するために、設計がどの程度凝集性があり、疎結合であるかを把握する必要があります。
一方、「情報エキスパート」は、どのクラスに特定の責任を与える必要があるかを特定するのに役立ちます。特定の責任を、それに関する情報が最も多いクラスに割り当てるように指示します。| |
したがって、単純なショッピング カートの使用例では、A ShoppingItem を数量と単価に基づいて calculateItemPrice() に指定し、ShoppingCart を calculateTotalPrice() に指定します。
これは重要な要素となり、ほとんどの GOF デザイン パターンが実際にこの GRASP コンセプトをサポートしていることに注意してください。
最も重要なこと。設計に Information Expert パターンを適用した場合、設計を評価するという点で高い結束が得られるはずです。これが、他のすべての GRASP パターンと同様に、Information Expert と Cohesion を連携させる方法です。
リソース: http://www.cs.bgu.ac.il/~oosd051/uploads/stuff/ApplyingUMLandPatterns.pdf