Подтвердить что ты не робот

Сплоченность и развязка

Может ли кто-нибудь сказать мне, что такое сплоченность и развязка? Я нашел сцепление, но нет развязки в любом месте. Мне нужно узнать их значения.

Любая помощь будет оценена. Спасибо, что ответили.

4b9b3361

Ответ 1

Эта статья из Аарона очень хороша для понимания, также я бы рекомендовал вам читать maning Spring в действии, они дают очень хорошие примеры того, как spring решает эту проблему, это определенно улучшит ваше понимание этого.

EDIT:

Я пришел к этому в этой великой книге под названием "Растущее объектно-ориентированное программное обеспечение, управляемое тестами":

Сцепление:

Элементы связаны, если изменение один заставляет меняться в другом. Для Например, если два класса наследуются от общий родитель, затем изменение в одном класс может потребовать изменения в Другие. Подумайте о комбинированной аудиосистеме: Он тесно связан, потому что если мы хотите перейти от аналогового к цифровому радио, мы должны перестроить весь система. Если мы соберем систему из отделяется, он будет иметь низкое сцепление и мы могли бы просто заменить получатель. Связанные функции "Loosely" (то есть те, которые имеют низкое сцепление), являются легче поддерживать.

Сплоченность:

Элементы cohesion являются мерой от того, значимая единица. Например, класс что анализ и даты и URL-адресов не когерентные, потому что они не связаны концепции. Подумайте о машине, которая стирает одежду и посуду - ее маловероятно, чтобы сделать так хорошо. другой крайний, класс, который анализирует только пунктуация в URL-адресе вряд ли будет согласованным, потому что не представляет собой целое понятие. к что-нибудь сделать, программист будет должны найти другие синтаксические анализаторы для протокол, хост, ресурс и т.д. Особенности с "высокой" связностью легче поддерживать.

Ответ 2

Cohesion - связано с принципом, что класс/метод должен отвечать только за одно: i) нет никаких бродячих методов, которые не входят в инкапсуляцию; метод только делает одно. Высокое/низкое сцепление - это степень, в которой это имеет место.

Связывание - как взаимозависимы разные части системы. например, как и где существуют зависимости. Если два класса обращаются к методам друг с другом, они тесно связаны друг с другом, поскольку изменение одного означает, что нужно изменить другое. Развязка - это процесс создания чего-то, что было тесно связано менее или вообще не было.

Гибкие системы имеют высокую сцепленность и свободную связь.

Ответ 3

Для связи эта статья в Википедии должна отвечать на все ваши вопросы. В этой статье обсуждается сплоченность.

"Развязка" - это просто другое название "малое/низкое сцепление".

Итак, эти термины отвечают на эти вопросы:

  • Насколько каждая часть вашего проекта зависит от другой части?
  • Если вы хотите использовать только часть своего проекта (например, для решения конкретной проблемы), сколько вам нужно знать обо всем остальном проекте?
  • Каждая часть вашего проекта сосредоточена на одном решении конкретной проблемы или "утечка" решений в другие части?

Ответ 4

Сплоченность: Cohesion - это принцип OO, наиболее тесно связанный с тем, что класс разработан с единственной, хорошо ориентированной целью.

Связь: Связывание относится к степени, в которой один класс знает или использует членов другого класса.

Ответ 5

Вот мои мысли о сплоченности. Представьте, что есть модуль. Внутри этого модуля у нас есть некоторые задачи. Когда эти задачи сильно связаны друг с другом, мы говорим, что они имеют высокую степень сплоченности. Когда эти задачи не связаны друг с другом, мы говорим, что она имеет низкую сплоченность. Моя лучшая попытка объяснить развязку заключается в том, что развязка - это акт удаления связи.

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

Однако, если мы имеем много зависимостей от внешних модулей, у нас будет высокая связь и низкое сцепление. Получите это?

Другие более украшенные мыслители и группы говорят:

Сплоченность - это степень, в которой задачи, выполняемые одним модулем, функционально связаны ". IEEE, 1983" Cohesion - это "клей", который содержит модуль вместе. Его можно рассматривать как тип ассоциации между составными элементами модуля. Как правило, требуется максимальный уровень сплоченности ". Bergland, 1981

Говорят, что программный компонент обладает высокой степенью сцепления, если элементы в этом блоке обладают высокой степенью функциональной связанности. Это означает, что каждый элемент в программном блоке должен быть необходим для достижения этой цели. Соммервиль, 1989

Ответ 6

развязка позволяет разделять взаимодействие объектов с классами и наследование на различные уровни абстракции, используемые для полиморфизма, отделять инкапсуляцию, которая является практикой использования повторно используемого кода для предотвращения взаимодействия дискретных модулей кода друг с другом.