Вопрос

Что такое сплоченность и развязка? Я нашел информацию о муфте, но не о развязке.

Это было полезно?

Решение

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

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

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

Связь :

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

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

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

Другие советы

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

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

Гибкие системы имеют высокую сплоченность и свободную муфту.

Для муфты, Эта статья Википедии следует ответить на все ваши вопросы. эта статья имеет дело с сплоченностью.

«Отделение» - это просто другое имя для «мало / низкая связь».

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

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

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

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

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

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

Сплоченность - это степень, в которой задачи, выполняемые одним модулем, функционально связаны. «IEEE, 1983» Сплоченность - это «клей», который содержит модуль вместе. Это можно рассматривать как тип ассоциации между компонентными элементами модуля. Как правило, один хочет самый высокий уровень сплоченности. «Берганд, 1981

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top