В Мегаполисе не было четкого деления на слои. Зависимости между модулями не были однонаправленными, а привязки часто были двусторонними. Компонент А бесцеремонно залезал во внутренности компонента В, чтобы выполнить свою работу для одной задачи. В компоненте В присутствовали жестко закодированные вызовы функций
компонента А. В системе не было ни нижнего уровня, ни центрального «стержня». Она представляла собой монолитную массу кода.
Связность и уровень привязок
Связность и уровень привязок являются ключевыми свойствами программных архитектур. Не подумайте, что мы говорим о каких – то новомодных «объектно-ориентированных» концепциях; разработчики говорят о них уже много лет, еще со времен формирования идей структурного проектирования в начале 1970-х годов. При проектировании систем мы должны стремиться к использованию компонентов, обладающих следующими свойствами:
Сильная связность
Связность определяет, в какой степени в модуле объединяются родственные функции, и насколько хорошо составляющие модуля работают как единое целое. Связность – своего рода «клей», объединяющий модуль.
Слабая связность модулей является признаком некачественной декомпозиции. Каждый модуль должен иметь четко определенную роль, он не должен превращаться в «барахолку» несвязанных функций.
No related posts.