Classe vs pacote vs módulo vs vs recipiente vs serviço vs plataforma no mundo Java [fechado]
Eu sou novato no mundo Java (7 anos de baixo nível C simples).
Quando comecei a ler sites relacionados a Java:
http://wiki.apidesign.org/wiki/Main_Pagehttp://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/Eu confuso pela terminologia existente:
classepacotemódulocomponenterecipienteserviçoestruturaplataformaEu encontrei muitos recursos sobre definição de termos (e muito mais):
Framework vs. Kit de Ferramentas vs. BibliotecaDiferença entre estrutura e container?Quais são os contêineres em JavaDefinição de um contêiner de Javahttp://martinfowler.com/articles/injection.html (Inversão de Contêineres de Controle e o padrão de Injeção de Dependência)http://www.cafeaulait.org/course/week8/36.html (O que é um recipiente AWT?)http://en.wikipedia.org/wiki/Web_containerhttp://netbeans.org/features/platform/ (A plataforma NetBeans)O que se entende por "estrutura de aplicativo"?O que é um framework de software?Qual é a diferença entre um framework e uma biblioteca?Qual é a diferença entre uma biblioteca de classes e uma estrutura?https://stackoverflow.com/questions/11576018/what-is-the-difference-between-a-javascript-framework-and-a-libraryQual é a principal diferença entre um framework e um kit de ferramentas?http://blog.orderharmony.com/2011/07/libraries-vs-frameworks.htmlhttp://www.javacodegeeks.com/2012/04/frameworks-vs-libraries-as-inheritance.htmlDiferença entre biblioteca, plataforma e framework?Qual é a diferença entre uma plataforma e um framework?qual é a diferença entre um framework e uma plataformaDiferença entre um módulo, biblioteca e um frameworkmas cada um desses recursos os define em seu próprio propósito e eu ainda não consigo distinguir por exemplo o módulo do componente no caso geral.
Por favor, explique o significado destes termos em grande figura (pode ser uma única classe, uma plataforma, que quantidade de módulos é necessária para fazer um container, etc).
ATUALIZAÇÃO 2019 Dehttps://www.artima.com/lejava/articles/reuse3.html (meu destaque)
Bill Venners: Qual é a diferença entre um framework, uma plataforma e um kit de ferramentas e quais são as diferentes necessidades de flexibilidade?
Erich Gamma: Com umplataforma Eu associoEstabilidade de longa duração. É seguro construir em cima de uma plataforma. Uma plataforma fazcompatibilidade garantias. Frameworks muitas vezes não têm essa qualidade e eu tenho vistomuitos framework falhas em relação aestabilidade. Se você olhar para o Eclipse, sim, ele inclui estruturas, kits de ferramentas e fornece APIs de plataforma. Tudo isso é empacotado como plug-ins.Frameworks abstraem e fornecem funcionalidade padrão de nível superior. Para fazer isso,estrutura precisa estar no controle. Essa perda de controle pode levar ao que às vezes é chamado de frameworkitis.
Bill Venners: E toolkits não porque ...
Erich Gamma: Comkits de ferramentas vocêcriar e chamar objetos de kit de ferramentas e registrar ouvintes para reagir a eventos. Você éno controle. Estruturas tentam estar no controle e dizer quando fazer o que. UMAkit de ferramentas dá-lhe oblocos de construção mas deixa para você estar no controle.
Outra citação responde à minha pergunta ingênua de quantas classes fazem de algo um framework:
https://www.artima.com/lejava/articles/reuse.html
Erich Gamma: ... JUnit é um framework pequeno, por exemplo. É o "Olá, mundo" de frameworks. Você temTest
, TestCase
, TestSuite
e relacionamentos definidos. Além disso, você se conecta a estruturas subclassificando em algum lugar. Eles usam o chamado princípio de Hollywood de "não nos ligue, vamos chamá-lo". O framework permite que você defina seu comportamento personalizado, e ele ligará para você quando for a sua vez de fazer alguma coisa. O mesmo com o JUnit, certo? Ele te chama de volta quando quer executar um teste para você, mas o resto é feito no framework.