Вопрос

Я пытаюсь свести концепции связи и сплоченности к краткому определению.Может кто-нибудь дать мне короткое и понятное объяснение (короче, чем определения в Википедии) здесь и здесь)?Как они взаимодействуют?

Спасибо.

У кого-нибудь есть хороший короткий пример?

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

Решение

Связь

  • Свободный:Ты и парень в магазине.Вы общаетесь по четко определенному протоколу для достижения своих целей: вы платите деньги, он позволяет вам уйти с пакетом Cheetos.Любого из вас можно заменить, не нарушая работу системы.

  • Тугой:Ты и твоя жена.

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

  • Низкий:Магазин товаров повседневного спроса.Вы идете туда за всем, от бензина до молока и банкоматов.Товары и услуги имеют мало общего, и удобства размещения их всех в одном месте может быть недостаточно, чтобы компенсировать возникающее в результате увеличение стоимости и снижение качества.

  • Высокий:Сырный магазин.Продают сыр.Ничего больше.Однако, когда дело доходит до сыра, их не победить.

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

Связь — мера того, насколько модуль (пакет, класс, метод) зависит от других модулей.Желательно уменьшить связь или уменьшить степень зависимости данного модуля от других модулей системы.

Сплоченность — мера того, насколько тесно связаны члены (классы, методы, функциональные возможности внутри метода) модуля с другими членами того же модуля.Желательно повысить связность, поскольку это указывает на то, что модуль имеет очень специфическую задачу и выполняет только эту задачу.

Одно из лучших всесторонних обсуждений концепций проектирования программного обеспечения, связанных с объектно-ориентированным подходом (включая эти), принадлежит Бертрану Мейеру. Объектно-ориентированное создание программного обеспечения.

Что касается «связи», он дает свое правило «Слабая связь/малые интерфейсы» следующим образом:

Если два модуля взаимодействуют, они должны обмениваться как можно меньшим количеством информации.

Материал Мейера, касающийся сплоченности, никогда не сводился к одному емкому утверждению, но я думаю, что это предложение из книги Стива МакКоннелла Код завершен подводит итог довольно хорошо:

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

Соединение означает зависимость от других.
Сплоченность означает полноту с самим собой.

Самый простой способ измерить связь — это измерить import (или аналогичные) заявления.

«Связность — это мера взаимозависимостей между модулями, которые следует свести к минимуму». «Связность, качество, которое следует максимизировать, фокусируется на отношениях между действиями, выполняемыми каждым модулем».

цитата из этой статьи: http://steve.vinoski.net/pdf/IEEE-Old_Measures_for_New_Services.pdf

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