Clase vs paquete vs módulo vs componente vs contenedor vs servicio vs plataforma en el mundo Java [cerrado]

Soy novato en el mundo de Java (7 años de bajo nivel llano C).

Cuando empecé a leer los sitios relacionados con Java:

http://wiki.apidesign.org/wiki/Main_Pagehttp://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/

Me confunde por la terminología existente:

clasepaquetemódulocomponenteenvaseServiciomarco de referenciaplataforma

Encontré muchos recursos sobre la definición de términos (y muchos más):

Framework vs. Toolkit vs. Library¿Diferencia entre marco y contenedor?¿Qué son los contenedores en Java?Definición de un contenedor de Javahttp://martinfowler.com/articles/injection.html (Inversión de contenedores de control y el patrón de inyección de dependencia)http://www.cafeaulait.org/course/week8/36.html (¿Qué es un contenedor AWT?)http://en.wikipedia.org/wiki/Web_containerhttp://netbeans.org/features/platform/ (La plataforma NetBeans)¿Qué se entiende por "marco de aplicación"?¿Qué es un marco de software?¿Cuál es la diferencia entre un marco y una biblioteca?¿Cuál es la diferencia entre una biblioteca de clases y un marcohttps://stackoverflow.com/questions/11576018/what-is-the-difference-between-a-javascript-framework-and-a-library¿Cuál es la principal diferencia entre un marco y un conjunto de herramientas?http://blog.orderharmony.com/2011/07/libraries-vs-frameworks.htmlhttp://www.javacodegeeks.com/2012/04/frameworks-vs-libraries-as-inheritance.html¿Diferencia entre biblioteca, plataforma y framework?¿Cuál es la diferencia entre una plataforma y un framework?¿Cuál es la diferencia entre un framework y una plataforma?Diferencia entre un módulo, una biblioteca y un framework.

pero cada uno de estos recursos los define según su propio propósito y aún no puedo distinguir, por ejemplo, el módulo del componente en el caso general.

Por favor, explique qué significan estos términos en una imagen general (puede ser una plataforma de una sola clase, qué cantidad de módulos se requieren para hacer un contenedor, etc.).

Actualización 2019 Desdehttps://www.artima.com/lejava/articles/reuse3.html (mi resaltado)

Bill Venners: ¿Cuál es la diferencia entre un marco, una plataforma y un conjunto de herramientas, y cuáles son las diferentes necesidades de flexibilidad?

Erich Gamma: Con unplataforma Yo asocioestabilidad a largo plazo. Es seguro construir sobre una plataforma. Una plataforma hacecompatibilidad Garantias Marcos a menudo no tienen esta calidad y he vistomuchos marco fallas con respecto aestabilidad. Si observa Eclipse, sí, incluye marcos de trabajo, kits de herramientas y API de plataforma. Todo esto se incluye como complementos.Los marcos resumen y proporcionan una funcionalidad por defecto de nivel superior. Para hacerlo elmarco debe estar en control. Esta pérdida de control puede llevar a lo que a veces se llama frameworkitis.

Bill Venners: Y las herramientas no lo hacen porque ...

Erich Gamma: Conjuegos de herramientas túcrear y llamar a los objetos del kit de herramientas y registrar oyentes para reaccionar ante eventos. Tu eresen control. Los marcos intentan tener el control y te dicen cuándo hacer lo que. UNAcaja de herramientas te da elbloques de construcción Pero te deja a ti estar en control.

Otra cita responde a mi ingenua pregunta de cuántas clases hacen que un marco sea algo:

https://www.artima.com/lejava/articles/reuse.html

Erich Gamma: ... JUnit es un marco pequeño, por ejemplo. Es el "Hola, mundo" de los frameworks. TienesTest, TestCase, TestSuite y relaciones definidas. Además, te enganchas en los marcos mediante subclases en algún lugar. Utilizan el llamado principio de Hollywood de "no nos llames, te llamaremos". El marco te permite definir tu comportamiento personalizado y te devolverá la llamada cuando sea tu turno de hacer algo. Lo mismo con JUnit, ¿verdad? Le devuelve la llamada cuando desea ejecutar una prueba, pero el resto se realiza en el marco.

Respuestas a la pregunta(2)

Su respuesta a la pregunta