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çoestruturaplataforma

Eu 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 framework

mas 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.

questionAnswers(2)

yourAnswerToTheQuestion