Modularidad en Java explicada con un ejemplo paso a paso [2022]

Publicado: 2021-01-02

Cuando te propones ser un programador de Java, hay una gran cantidad de oportunidades. En promedio, un programador de Java gana alrededor de $ 69,722 por mes, que es un buen pago . Obtenga más información sobre el salario de un desarrollador de Java en la India. Si planea tener una carrera sólida en programación Java, entonces la modularidad es algo que debe aprender primero. Es una de las partes vitales de la programación de software moderna. Entonces, primero comprendamos qué es un módulo.

¿Qué es la modularidad en Java?

Un módulo es más como una partición independiente de software que se comunica a través de una interfaz. La modularidad explora la creación de un programa mediante el uso de diferentes módulos que una única arquitectura heredada. Es más como microservicios en una arquitectura MVC, donde todo el sistema es un conjunto de servicios independientes.

Con la modularidad, la partición del entorno de software en diferentes módulos hace que todo el proceso sea más optimizado y reduce el efecto de acoplamiento. Ayuda a los desarrolladores de Java a realizar pruebas de funcionalidad sobre la marcha mientras el proceso de desarrollo continúa simultáneamente.

La modularidad en Java garantiza que el tiempo de desarrollo se reduzca con pruebas y depuración sobre la marcha.

Ahora que conocemos la modularidad, comprendamos por qué la necesita.

Leer: Preguntas y respuestas de la entrevista de Java

Inscríbase en cursos de ingeniería de software de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

¿Por qué necesitamos la modularidad de Java?

La modularidad ayuda a un desarrollador de Java de tres maneras,

Reutilización: la reutilización puede ayudar a los desarrolladores a ahorrar tiempo usando el mismo código mientras crean una versión más nueva del software o la aplicación. Con la modularidad en Java, puede reutilizar los módulos en otros lugares además del software desarrollado inicialmente.

Estabilidad: la modularidad ayuda a mantener la estabilidad del software al realizar cambios en secciones individuales del código. Significa que las nuevas modificaciones permanecen ocultas para los consumidores y se pueden probar fácilmente sin afectar el software existente.

Desarrollo paralelo: los desarrolladores de Java pueden desarrollar rápidamente módulos paralelos entre sí. Una vez que se desarrollan todos los módulos, se pueden combinar a través de una interfaz para crear una suite. El uso del desarrollo paralelo puede ahorrar tiempo.

Ahora exploremos diferentes aspectos de la modularidad en Java.

Aunque la modularidad se introdujo en Java 9, exploraremos el concepto de Java 11 con un ejemplo simple de creación de una calculadora. Crearemos una calculadora simple pero avanzada que verifique los números primos, calcule su suma, ya sea que un número sea par o no.

Paso 1: Crear el módulo

El primer paso es crear módulos, y puede optar por crear varios módulos según la complejidad. Aquí, estamos creando dos módulos distintos,

  1. Matemáticas. módulo útil
  2. Módulo calculadora

El primer módulo tiene una API o interfaz de programa de aplicación para ejecutar cálculos matemáticos. Al mismo tiempo, el segundo módulo inicia la calculadora.

Paso 2: Ejecutando los módulos

Ejecutaremos el módulo API en el navegador implementándolo en la clase com.upgrad.math.MathUtil,

booleano estático público isPrime (número entero) {

if ( número == 1 ) { devuelve falso; }

return IntStream.range(2,num).noneMatch(i -> num % i == 0 );

}

Podemos comprobar el módulo con una función.

booleano estático público es par (número entero) {

número de retorno % 2 == 0;

}

Si está pensando en comprobar si los números son pares o impares, podemos ejecutar otra función.

public static Integer sumOfFirstNevens(Recuento de enteros){

devuelve IntStream.iterate(1,i -> i+1)

.filter(j -> esPar(j))

.limit(cuenta).sum();

}

public static Integer sumOfFirstNOdds(Integer count){ return IntStream.iterate(1,i -> i+1) .filter(j -> !isEven(j)) .limit(count).sum(); }

Entonces, hasta ahora ejecutamos dos funciones en los modelos API e hicimos las siguientes observaciones.

  • Hay una secuencia infinita a partir del número 1.
  • Se repite la filtración de números.
  • El flujo de números es limitado.
  • Encontrar la suma de números

Según estas observaciones, un desarrollador puede refactorizar la API y ejecutarla.

ComputeFirstNSum entero (recuento de enteros,

filtro IntPredicate){

devuelve IntStream.iterate(1,i -> i+1)

.filtro(filtro)

.limit(cuenta).sum();

}

Aquí, necesitamos encontrar la suma de números que está limitada por el conteo. También necesitaremos encontrar el filtro para números en condiciones para las cuales se ejecutará la suma.

Recreemos las API en función de las nuevas condiciones que exploramos.

public static Integer sumOfFirstNPrimes(Recuento de enteros){

return computeFirstNSum(count, (i -> isPrime(i)));

}

public static Integer sumOfFirstNevens(Integer count){ return computeFirstNSum(count, (i -> isEven(i))); }

public static Integer sumOfFirstNOdds(Integer count){ return computeFirstNSum(count, (i -> !isEven(i)));

Ahora que hemos probado las API y las hemos refactorizado, coloquemos la clase com.upgrad.math.MathUtil en un módulo.

Paso 3: Insertar clase de utilidad en un módulo

Para insertar una pequeña clase de utilidad en el módulo denominado math. util, necesitas seguir algunas convenciones como

  • Coloque todo el código relacionado con el módulo API en un directorio del mismo nombre y utilícelo como directorio raíz.
  • Inserte module-info.java en la carpeta raíz
  • Coloque todos los paquetes y códigos en el directorio raíz.

Paso 4: Creación de una definición de módulo para la calculadora

Crearemos un módulo de una calculadora que requiere math.utl.

calculadora de módulo{

requiere matemáticas.util;

}

Podemos compilar el código siguiendo,

javac -d mods –module-source-path . $(buscar . -nombre “*.java”)

Una vez que compilamos los códigos de los módulos de calculadora y math.utl en el directorio de mods, un solo comando incluirá las dependencias entre estos dos módulos, lo que se hace a través de un compilador. No es necesario crear herramientas dedicadas para crear dependencias entre la calculadora y maths.utl.

Paso 5: Ejecutar el código

Una vez que tenga los módulos en el directorio de mods y las dependencias en su lugar, ahora es el momento de ejecutar el código. La ejecución pondrá en acción nuestra calculadora simple y avanzada.

java –module-path mods -m calculadora/com.upgrad.calculator.Calculator

Debe leer: Proyectos y temas interesantes de Java

Conclusión

Según una encuesta , Java es el segundo idioma preferido en términos de una nueva publicación de trabajo, lo que lo convierte en una excelente opción para los principiantes.

Si está interesado en obtener más información sobre Java, OOP y desarrollo de software de pila completa, consulte el programa Executive PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de formación rigurosa. Más de 9 proyectos y asignaciones, estado de exalumno de IIIT-B, proyectos finales prácticos prácticos y asistencia laboral con las mejores empresas.

Prepárate para una carrera del futuro

Aplicar ahora para Maestría en Ingeniería de Software