В чем разница между информационным экспертом GRASP и связностью GRASP?

Обе концепции очень похожи, трудно сказать, что есть что.

Пожалуйста, приведите пример того, как вы бы их дифференцировали.

2 ответа

Решение

Все концепции GRASP связаны, поэтому вы должны рассмотреть их все вместе:

  1. "эксперт по информации" - вопрос "Какой объект должен иметь необходимое поведение?" (Пожалуйста, смотрите http://en.wikipedia.org/wiki/Domain-driven_design) как один из ответов на этот вопрос.
  2. "сплоченность" - вопрос "сколько объектов различного поведения имеют" http://en.wikipedia.org/wiki/GRASP_%28object-oriented_design%29

Вы не должны изучать эти понятия без практики кодирования, писать код / ​​делать рефакторинг - и вы получите это.

Шаблоны проектирования GRASP, как очень правильно сказано здесь ( Является ли Information Expert из GRASP и Modell из MVC одинаковыми?), Являются принципами проектирования и помогают вам оценить ваши проектные решения и реализацию.

"Сплоченность" в GRASP - это образец оценки наряду с "сцеплением". Таким образом, вы должны использовать их для анализа вашего проекта, чтобы выяснить, насколько он сплоченный и слабосвязанный, что напрямую повышает возможность повторного использования и расширяемости.

С другой стороны, "Эксперт по информации" может помочь вам определить, на какой класс должна быть возложена определенная ответственность. Он говорит вам назначить определенную ответственность за класс, который имеет больше информации о нем. |

Следовательно, в простом случае использования корзины покупок вы бы указали: A ShoppingItem для вычисления ItemPrice() на основе количества и цены за единицу, и ShoppingCart для вычисления TotalPrice().

Это становится решающим фактором, и обратите внимание, что большинство шаблонов проектирования GOF фактически поддерживают эту концепцию GRASP.

Самое главное. Если вы применили шаблон "Информационный эксперт" в своем проекте, он должен обеспечить высокую степень согласованности в плане оценки вашего проекта. Вот как информационный эксперт и сплоченность будут идти рука об руку, как и все другие шаблоны GRASP.

Ресурсы: http://www.cs.bgu.ac.il/~oosd051/uploads/stuff/ApplyingUMLandPatterns.pdf

Другие вопросы по тегам