Решение
Связь
Свободный:Ты и парень в магазине.Вы общаетесь по четко определенному протоколу для достижения своих целей: вы платите деньги, он позволяет вам уйти с пакетом Cheetos.Любого из вас можно заменить, не нарушая работу системы.
Тугой:Ты и твоя жена.
Сплоченность
Низкий:Магазин товаров повседневного спроса.Вы идете туда за всем, от бензина до молока и банкоматов.Товары и услуги имеют мало общего, и удобства размещения их всех в одном месте может быть недостаточно, чтобы компенсировать возникающее в результате увеличение стоимости и снижение качества.
Высокий:Сырный магазин.Продают сыр.Ничего больше.Однако, когда дело доходит до сыра, их не победить.
Другие советы
Связь — мера того, насколько модуль (пакет, класс, метод) зависит от других модулей.Желательно уменьшить связь или уменьшить степень зависимости данного модуля от других модулей системы.
Сплоченность — мера того, насколько тесно связаны члены (классы, методы, функциональные возможности внутри метода) модуля с другими членами того же модуля.Желательно повысить связность, поскольку это указывает на то, что модуль имеет очень специфическую задачу и выполняет только эту задачу.
Одно из лучших всесторонних обсуждений концепций проектирования программного обеспечения, связанных с объектно-ориентированным подходом (включая эти), принадлежит Бертрану Мейеру. Объектно-ориентированное создание программного обеспечения.
Что касается «связи», он дает свое правило «Слабая связь/малые интерфейсы» следующим образом:
Если два модуля взаимодействуют, они должны обмениваться как можно меньшим количеством информации.
Материал Мейера, касающийся сплоченности, никогда не сводился к одному емкому утверждению, но я думаю, что это предложение из книги Стива МакКоннелла Код завершен подводит итог довольно хорошо:
Сплоченность означает, насколько близко все подпрограммы в классе или весь код в подпрограмме поддерживают основную цель.
Соединение означает зависимость от других.
Сплоченность означает полноту с самим собой.
Самый простой способ измерить связь — это измерить import
(или аналогичные) заявления.
«Связность — это мера взаимозависимостей между модулями, которые следует свести к минимуму». «Связность, качество, которое следует максимизировать, фокусируется на отношениях между действиями, выполняемыми каждым модулем».
цитата из этой статьи: http://steve.vinoski.net/pdf/IEEE-Old_Measures_for_New_Services.pdf