Ви згадуєте як схеми дизайну, так і з'єднання. Це окремі поняття, тому я з ними розбираюся окремо. Єдиний справжній зв’язок полягає в тому, що моделі дизайну, як правило, сприяють слабкому з'єднанню (оскільки це головний аспект хорошого дизайну).
Шаблони дизайну
Концепція шаблонів дизайну насправді досить проста: вони просто набір шаблонів, як вирішувати різні поширені проблеми. Є дві основні причини, по яких вони популярні:
- Вони «перевірені»: вони використовувалися раніше, і переваги / недоліки кожного з них відомі, зокрема відомі будь-які найтонші проблеми, які можуть спричинити великі проблеми.
- Вони надають загальний набір термінології, і таким чином дозволяють легше спілкуватися. Якщо хтось каже, що "клас X грає роль спостерігача за схемою спостерігача", тоді розробники, які знайомі з цим шаблоном, можуть негайно зрозуміти, що відбувається.
Звідки ви знаєте, що ви правильно його реалізували? Це хитро. Для більшості моделей це просто - ви або прикусили його, або не зробили. Деякі зразки менш чітко визначені, ніж інші - наприклад, модель-перегляд-контролер . Такі зразки краще використовувати як загальні вказівки. Специфіка того, як ви його реалізуєте, менш важлива, ніж розуміння причин того, що існує, і того, що його потрібно досягти.
Шаблони дизайну - не єдиний вірний спосіб. Часто вам або потрібно буде адаптувати їх під ваші конкретні цілі, або іноді просто не буде жодних шаблонів, що відповідають вимогам. Примушувати схему дизайну там, де вона не підходить - погана ідея; це як використовувати справді хороший молоток, коли те, що ти насправді хочеш, - це викрутка.
Зчеплення
Це дійсно важлива ідея в галузі інформатики. Оскільки вимоги до більшості програмних проектів змінюються з часом (іноді значно), то здатність дизайну впоратися зі змінами є важливою. З'єднання в основному є мірою "як важко було б замінити цей компонент на інший?" "Компонент" може бути методом, класом, пакетом, бібліотекою тощо.
У цій статті у Вікіпедії перераховані різні типи зчеплення .