Це вимагає детального пояснення, але я спробую змалювати відмінності, наскільки мені відомо.
Візерунки - це спільність дистильованої, яку ви знайдете в програмах. Це дозволяє нам деконструювати велику складну структуру та будувати за допомогою простих деталей. Це забезпечує загальне рішення для класу проблем.
Велике складне програмне забезпечення проходить серію деконструкції на різних рівнях. На великому рівні архітектурні зразки - це інструменти. На меншому рівні шаблони дизайну - це інструменти, а на рівні реалізації парадигми програмування - це інструменти.
Візерунок може виникати на дуже різних рівнях. Дивіться фрактали . Швидке сортування, сортування об'єднань - це всі алгоритмічні шаблони для організації групи елементів у порядку.
Для найбільш спрощеного перегляду:
- Парадигми програмування - специфічні для мови програмування
- Шаблони проектування - вирішує повторювані проблеми в побудові програмного забезпечення
- Архітектурні зразки - фундаментальна структурна організація програмних систем
Ідіоми - це парадигматичні та мовні специфічні методи програмування, які заповнюють деталі низького рівня.
Шаблони дизайну зазвичай асоціюються із спільністю рівня коду. Він надає різні схеми вдосконалення та побудови менших підсистем. На неї зазвичай впливає мова програмування. Деякі зразки бліднуть до незначності через мовні парадигми . Шаблони дизайну - це середньомасштабна тактика, яка формує частину структури та поведінки сутностей та їх відносин.
Хоча архітектурні зразки розглядаються як спільність на більш високому рівні, ніж дизайнерські зразки. Архітектурні зразки - це стратегії високого рівня, що стосуються масштабних компонентів, глобальних властивостей та механізмів системи.
Як виходять візерунки? Через:
- повторне використання,
- класифікація
- і нарешті абстракція, щоб перешкодити спільність.
Якщо ви дотримувались думок, викладених вище. Ви побачите, що Сінглтон - це «модель дизайну», тоді як MVC - це одна з «архітектурних» схем для вирішення проблем.
Спробуйте прочитати далі:
- http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
- http://en.wikipedia.org/wiki/Design_pattern
- http://en.wikipedia.org/wiki/Anti-pattern