¿Cuál es la diferencia entre una biblioteca Java y un marco? Los dos conceptos son importantes pero a veces confusos para los desarrolladores de Java.
1. Diferencia clave y definición de biblioteca y marco
La diferencia clave entre una biblioteca y un marco es «Inversión de control». Cuando llamas a un método desde una biblioteca, tienes el control. Pero con un marco, el control se invierte: el marco te llama.
Una biblioteca es solo una colección de definiciones de clases. La razón detrás es simplemente la reutilización del código, es decir, obtener el código que ya ha sido escrito por otros desarrolladores. Las clases y métodos normalmente definen operaciones específicas en un área específica de dominio. Por ejemplo, hay algunas bibliotecas de matemáticas que pueden permitir al desarrollador simplemente llamar a la función sin rehacer la implementación de cómo funciona un algoritmo.
En el marco, todo el flujo de control ya está allí, y hay un montón de puntos blancos predefinidos que debe completar con su código. Normalmente, un marco es más complejo. Define un esqueleto donde la aplicación define sus propias características para completar el esqueleto. De esta manera, el marco llamará a su código cuando sea apropiado. El beneficio es que los desarrolladores no necesitan preocuparse por si un diseño es bueno o no, sino solo por implementar funciones específicas del dominio.
2. Su relación
Ambos definieron API, que se utiliza para que la utilicen los programadores. Para unirlos, podemos pensar en una biblioteca como una determinada función de una aplicación, un marco como el esqueleto de la aplicación y una API es un conector para unirlos. Un proceso de desarrollo típico normalmente comienza con un marco y completa funciones definidas en bibliotecas a través de API.
3. Ejemplos
1. ¿Cómo hacer una biblioteca de Java?
2. ¿Cómo diseñar un marco?
Referencia:
Martin Fowler