Já vi muita gente falando, até tenho um idéia do que seja, mas acabem com o meu tormento e expliquem, (de forma reduzida de preferência), o que é um Framework? Outro dia eu estava quase achando que sabia o que era, aí um cara disse MVC é um framework, mas o mvc não é um design pattern??? :? :? :?
O que é Framework?
13 Respostas
Framework é um conjunto de classes e interfaces que cooperam para resolver um tipo de problema de software.
Um framework tem as seguintes características:
- Um framework compreende múltiplas classes ou componentes, cada um devendo prover uma abstração de um conceito particular.
- Um framework define como essa abstração trabalha junto para resolver um problema.
- Componentes do framework são reusáveis.
- Um framework organiza padrões em alto nível.
Como vc disse MVC e um design patterns, mas existem diversos frameworks que ajudam vc aplicar esse pattern, como por exemplo: Struts, Webwork, vRaptor, etc
Como vc disse MVC e um design patterns
Ok, isto é bem polêmico, mas não. O MVC usa o Observer, mas é uma arquitetura, estratégia… não um pattern.
[]s
Framework é quando vc usa os conceitos de OO para desenvolver uma API que te permita reutilizar uma estratégia para atingir certo objetivo. (Que horrível isso !!!)
Veja o meu post Hibernate ou DBBean. No caso ali o DBBean é um framework de persistencia.
MVC é um pattern, pode ser implementado de diversas maneiras diferentes
um framework é um conjunto de classes e bibliotecas que ditam a maneira como você vai trabalhar,
MVC dita como você deve trabalhar, como todos os Design Patterns, mas não é um conjunto de classes/bibliotecas, por tanto, não é um framework 
e MVC não é uma arquitetura por si só, uma arquitetura precisa de muito mais coisa, mas MVC é parte de praticamente todas as arquiteturas de software voltadas a WEB utilizando a linguagem java, e de boa parte das arquiteturas para sistemas Desktop
o proprio Swing utiliza o Pattern MVC 
então swing pode ser considerado um framework que ajuda a fazer a interface com o usuario? E qual a diferencia para API( applications programming interface ) e framework ?
Eu acho que até entendo esses conceitos, mas sempre me enrolo quando alguem me pergunta…
um framework compreende uma ou mais APIs ou bibliotecas 
por exemplo o Struts
tem a biblioteca dele proprio de classes, commons-beans, commons-logging, commons-xxx
e implementa diversos Patterns, o principal no caso do struts é o MVC, mas também implementa Command, …
MVC é um pattern, pode ser implementado de diversas maneiras diferentese MVC não é uma arquitetura por si só, uma arquitetura precisa de muito mais coisa, mas MVC é parte de praticamente todas as arquiteturas de software voltadas a WEB utilizando a linguagem java, e de boa parte das arquiteturas para sistemas Desktop
Ok, então troca de mensagens [tipo JMS] seria um pattern?
É o mesmo princípio. Um pattern apresenta uma solução recorrente, MVC é uma estratégia. Utiliza Observer e Façade, é uma aplicação destes em conjunto.
Como falei, é polêmico. meu ponto de vista está mais para a Wikipedia:
Note que pattern e design pattern não são a mesma coisa.
[]s
Um amigo (filipini) disse q uma vez um palestrante mandou mal nessa de conceitos…
"Uma aplicação rodava em um ambiente com Java, mudamos o produto para o produto de nossa marca e melhoramos a performance em 400%…
Olha que beleza, isso que eu chamo de Design Pattern (sic)!"

shoes, olha a definição de Design Pattern da wikipedia
shoes, olha a definição de Design Pattern da wikipedia
Design patterns are standard solutions to common problems in object-oriented software design. The phrase was introduced to computer …encompass a tight interaction of a few classes and objects.
Uhm… sim. Soluções de problemas comuns e tal. Não entendi o que vc quis dizer :roll:
[]s
Lembrando também do final:
Mas bem … dane-se, não faz a mínima diferença 
bom, dependendo da definição pattern é o que a wikkipedia chama de design pattern, e alguns dividem os patterns em algumas sub classes:
Architecture Pattern
Design Pattern
…
e assim por diante 
bom, dependendo da definição pattern é o que a wikkipedia chama de design pattern, e alguns dividem os patterns em algumas sub classes:Architecture Pattern
Design Pattern
…e assim por diante :-)
Fora os Analiysis Pattern do Fowler…
Sem cotnar os Patterns do Alexander…
Alguém tranco o topic, por favor! :lol: :lol: :lol:
[]s