Solución:
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ífico 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 los sistemas de software
Modismos son técnicas de programación específicas del paradigma y del lenguaje que completan detalles de bajo nivel.
Patrones de diseño generalmente se asocian con puntos en común 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.
Tiempo patrones arquitectonicos se ven como 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
Los patrones de diseño son patrones bien conocidos para resolver problemas técnicos de una manera que ha demostrado su eficacia muchas veces. Los patrones de diseño son estructuras y prácticas de diseño comunes que permiten crear software orientado a objetos reutilizable. Los ejemplos de patrones de diseño son Factory Pattern, Singleton, Facade, State, etc. Los patrones de diseño se pueden usar para resolver problemas más pequeños en toda la aplicación, y son mucho más fáciles de inyectar, cambiar y agregar que la arquitectura general.
Los patrones de arquitectura son patrones bien conocidos para resolver problemas de arquitectura de aplicaciones de software. La arquitectura de la aplicación de software es el proceso de definir una solución estructurada que cumpla con todos los requisitos técnicos y operativos. La arquitectura de la aplicación es la “organización” general del código. Ejemplos de arquitecturas diferentes pueden ser MVC, MVVM, MVP, n-layer (es decir, UI-BLL-DAL), etc. La arquitectura generalmente debe decidirse por adelantado y, a menudo, es difícil de cambiar una vez que se construye la aplicación.