Урок 7. Связность методов

Связность (как мера независимости или самостоятельности) на уровне методов, характеризует соответствие выполняемых в методе операций единой цели. Некоторые программисты связность, называют – силой метода (strength).

Рекомендуемый вид связности: Функциональная связность – самый сильный вид связности. В этом случае метод выполняет только одну операцию.

Приемлемый вид связности:

  • Последовательная связность (sequential cohesion) – вид связности, когда метод содержит наборы операций, которые выполняются в строго определенном порядке, используют данные предыдущих этапов и не формируют в целом единую функцию.
  • Коммуникационная связность (communicational cohesion) – вид связности, когда выполняемые в методе операции используют одни и те же данные и не связанны между собой другим образом. В таком случае рекомендуется разделить операции на два метода.
  • Временная связность (temporal cohesion) – вид связности, когда метод пытается объединить в себе операции, которые должны выполняться в один интервал времени.

Плохой вид связности:

  • Процедурная связность (procedural cohesion) – вид связности, когда операции в методе выполняются в определенном порядке. Для достижения лучшей связности рекомендуется поместить разные операции в отдельные методы.
  • Логическая связность (logical cohesion) – вид связности, когда метод включает несколько операций, а выбор операции осуществляется на основании передаваемого в качестве аргумента флага. Вид связности называется логическим, потому что, операции метода объединены только управляющей логикой метода: оператором if или рядом блоков case.
  • Случайная связность (coincidental cohesion) – вид связности, когда каких либо отношений между выполняемыми в методе операциями нет. Этот вариант еще называют – «отсутствием связности» или «хаотичной связностью».

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

%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B0%20%D0%B2%D0%BB%D0%B5%D0%B2%D0%BE%202 предыдущая статья | следующая статья %D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B0%20%D0%B2%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%202