Requiere una explicación detallada, pero intentaré esbozar las diferencias lo mejor que pueda.
Patrones son elementos comunes destilados que se encuentran en los programas. Nos permite deconstruir una gran estructura compleja y construir utilizando piezas simples. Proporciona una solución general para una clase de problemas.
Un gran software complejo pasa por una serie de deconstrucciones en diferentes niveles. A gran nivel, los patrones arquitectónicos son las herramientas. En un nivel más pequeño, los patrones de diseño son las herramientas y en el nivel de implementación, los paradigmas de programación son las herramientas.
Un patrón puede ocurrir en niveles muy diferentes. Ver fractales . La clasificación rápida y la clasificación por fusión son todos patrones algorítmicos para organizar un grupo de elementos en un orden.
Para una visión más simplista:
- Paradigmas de programación : específicos del lenguaje de programación
- Patrones de diseño : resuelve problemas recurrentes en la construcción de software
- Patrones arquitectónicos : organización estructural fundamental para sistemas de software
Modismos son técnicas de programación específicas del paradigma y del lenguaje que completan detalles de bajo nivel.
Los patrones de diseño suelen estar asociados con elementos comunes a nivel de código. Proporciona varios esquemas para refinar y construir subsistemas más pequeños. Suele estar influenciado por el lenguaje de programación. Algunos patrones se vuelven insignificantes debido a los paradigmas del lenguaje . Los patrones de diseño son tácticas de mediana escala que desarrollan parte de la estructura y el comportamiento de las entidades y sus relaciones.
Mientras que los patrones arquitectónicos se consideran elementos comunes a un nivel más alto que los patrones de diseño. Los patrones arquitectónicos son estrategias de alto nivel que se refieren a componentes a gran escala, las propiedades globales y los mecanismos de un sistema.
¿Cómo se obtienen los patrones? Mediante:
- reutilizar,
- clasificación
- y finalmente abstracción para destilar lo común.
Si ha seguido los pensamientos expuestos anteriormente. Verá que Singleton es un "patrón de diseño" mientras que MVC es uno de los patrones "arquitectónicos" para lidiar con la separación de preocupaciones.
Intenta leer en:
- http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
- http://en.wikipedia.org/wiki/Design_pattern
- http://en.wikipedia.org/wiki/Anti-pattern