Вы упоминаете как шаблоны проектирования и связи. Это отдельные понятия, поэтому я буду разбираться с ними отдельно. Единственная реальная связь заключается в том, что шаблоны проектирования, как правило, способствуют слабой связи (так как это главный аспект хорошего дизайна).
Шаблоны проектирования
Концепция шаблонов проектирования на самом деле довольно проста: это всего лишь набор шаблонов для решения различных распространенных проблем. Есть две основные причины их популярности:
- Они «проверены»: они использовались много раз, и преимущества / недостатки каждого из них общеизвестны, в частности, известны любые тонкие проблемы, которые могут вызвать большие проблемы.
- Они предоставляют общий набор терминов и, таким образом, облегчают общение. Если кто-то скажет «класс X играет роль наблюдателя в шаблоне наблюдателя», то разработчики, знакомые с шаблоном, могут сразу понять, что происходит.
Откуда вы знаете, что вы реализовали это правильно? Это сложно. Для большинства паттернов это просто - вы либо ухитрились, либо нет. Некоторые шаблоны менее четко определены, чем другие - например, модель-представление-контроллер . Подобные шаблоны лучше использовать в качестве общих указаний. Специфика того, как вы реализуете его, менее важна, чем понимание причин, по которым шаблон существует, и того, для чего он предназначен.
Шаблоны проектирования не «единственно верный путь». Часто вам нужно либо адаптировать их для ваших конкретных целей, либо иногда просто не будет шаблонов, которые соответствуют требованиям. Форсировать шаблон дизайна там, где он не подходит, - плохая идея; это похоже на использование действительно хорошего молотка, когда на самом деле вам нужна отвертка.
Связь
Это действительно важная идея в информатике. Поскольку требования к большинству программных проектов со временем меняются (иногда значительно), важно, чтобы дизайн мог справиться с изменениями. Сцепление - это мера того, «как трудно было бы заменить этот компонент на другой?» «Компонентом» может быть метод, класс, пакет, библиотека и т. Д.
В этой статье Википедии перечислены различные типы соединений .