Сцепление и Отделение, что они представляют?

Что такое Сцепление и Отделение? Я нашел информацию о связи, но не об отделении.

34
задан Félix Gagnon-Grenier 14 March 2019 в 19:44
поделиться

3 ответа

Эта статья от Аарона очень хороша для понимания, также я бы порекомендовал вам прочитать книгу Manning Publications Spring in Action , в ней приведены очень хорошие примеры того, как пружина решает эту проблему, и она определенно улучшит ваше понимание этого.

РЕДАКТИРОВАТЬ:

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

Связь:

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

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

Сплоченность элемента является мерой о том, формируют ли его обязанности значимая единица. Например, класс который анализирует как даты, так и URL-адреса, не последовательны, потому что они не связаны концепции. Представьте себе машину, которая моет и одежду, и посуду - это вряд ли удастся добиться успеха в обоих случаях. другая крайность, класс, который анализирует только пунктуация в URL вряд ли будет связным, потому что это не представляет собой целостную концепцию. К сделать что-нибудь, программист будет нужно найти другие парсеры для протокол, хост, ресурс и т. д. Функции с «высокой» когерентностью легче поддерживать.

72
ответ дан 27 November 2019 в 16:19
поделиться

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

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

Гибкие системы обладают высоким сцеплением и неплотным сцеплением.

13
ответ дан 27 November 2019 в 16:19
поделиться

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

«Развязка» - это просто еще одно название для «слабой / слабой связи».

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

  • Насколько каждая часть вашего проекта зависит от другой части?
  • Если вы хотели использовать только часть вашего проекта (например, для решения конкретной проблемы), сколько вам нужно знать обо всех остальных частях проекта?
  • Каждая ли часть вашего проекта сосредоточена на одной единственной решение конкретной проблемы или решения «просачиваются» в другие части?
2
ответ дан 27 November 2019 в 16:19
поделиться