Requer uma explicação detalhada, mas tentarei esboçar as diferenças da melhor maneira possível.
Os padrões são semelhanças destiladas que você encontra em programas. Ele nos permite desconstruir uma grande estrutura complexa e construir usando peças simples. Ele fornece uma solução geral para uma classe de problemas.
Um grande software complexo passa por uma série de desconstruções em diferentes níveis. Em um nível geral, os padrões arquitetônicos são as ferramentas. Em um nível menor, os padrões de design são as ferramentas e, no nível de implementação, os paradigmas de programação são as ferramentas.
Um padrão pode ocorrer em níveis muito diferentes. Veja Fractais . Classificação rápida e classificação por mesclagem são todos padrões de algoritmos para organizar um grupo de elementos em um pedido.
Para uma visão mais simplista:
- Paradigmas de programação - específicos para linguagem de programação
- Padrões de design - resolve problemas recorrentes na construção de software
- Padrões arquitetônicos - organização estrutural fundamental para sistemas de software
Expressões idiomáticas são técnicas de programação específicas de paradigma e de linguagem que preenchem detalhes de baixo nível.
Os padrões de design são geralmente associados a semelhanças de nível de código. Ele fornece vários esquemas para refinar e construir subsistemas menores. Geralmente é influenciado pela linguagem de programação. Alguns padrões tornam-se insignificantes devido aos paradigmas da linguagem . Os padrões de design são táticas de média escala que dão corpo a parte da estrutura e do comportamento das entidades e seus relacionamentos.
Enquanto os padrões arquitetônicos são vistos como semelhanças em um nível mais alto do que os padrões de design. Os padrões arquitetônicos são estratégias de alto nível que dizem respeito a componentes em grande escala, propriedades globais e mecanismos de um sistema.
Como os padrões são obtidos? Através:
- reuso,
- classificação
- e, finalmente, abstração para destilar a semelhança.
Se você seguiu os pensamentos expostos acima. Você verá que Singleton é um "padrão de design", enquanto MVC é um dos padrões "arquitetônicos" para lidar com a separação de interesses.
Tente ler em:
- http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
- http://en.wikipedia.org/wiki/Design_pattern
- http://en.wikipedia.org/wiki/Anti-pattern