La modularità in Java spiegata con l'esempio passo passo [2022]
Pubblicato: 2021-01-02Quando hai deciso di diventare un programmatore Java, ci sono molte opportunità. In media, un programmatore Java guadagna circa $ 69.722 al mese, che è un bel guadagno . Scopri di più sullo stipendio degli sviluppatori Java in India. Se hai intenzione di avere una solida carriera nella programmazione Java, allora la modularità è qualcosa che dovresti prima imparare. È una delle parti vitali della moderna programmazione del software. Quindi, prima capiamo cos'è un modulo?
Che cos'è la modularità in Java?
Un modulo è più simile a una partizione indipendente di software che viene comunicata tramite un'interfaccia. La modularità esplora la creazione di un programma utilizzando moduli diversi rispetto a una singola architettura legacy. È più simile ai microservizi in un'architettura MVC, in cui l'intero sistema è una suite di servizi indipendenti.
Con la modularità, la partizione dell'ambiente software in diversi moduli rende l'intero processo più ottimizzato e riduce l'effetto di accoppiamento. Aiuta gli sviluppatori Java a eseguire test di funzionalità in movimento mentre il processo di sviluppo è in corso contemporaneamente.
La modularità in Java assicura che il tempo di sviluppo sia ridotto con test e debug al volo.
Ora che sappiamo della modularità capiamo perché ne hai bisogno?
Leggi: Domande e risposte per l'intervista Java

Iscriviti ai corsi di ingegneria del software dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
Perché abbiamo bisogno della modularità Java?
La modularità aiuta uno sviluppatore Java in tre modi:
Riutilizzabilità: la riutilizzabilità può aiutare gli sviluppatori a risparmiare tempo utilizzando lo stesso codice durante la creazione di una versione più recente del software o dell'app. Con la modularità in Java, puoi riutilizzare i moduli altrove rispetto al software sviluppato inizialmente.
Stabilità: la modularità aiuta a mantenere la stabilità del software apportando modifiche alle singole sezioni del codice. Significa che le nuove modifiche rimangono nascoste ai consumatori e possono essere facilmente testate senza influire sul software esistente.
Sviluppo parallelo: gli sviluppatori Java possono sviluppare rapidamente moduli paralleli tra loro. Una volta sviluppati tutti i moduli, possono essere combinati tramite un'interfaccia per creare una suite. L'uso dello sviluppo parallelo può far risparmiare tempo.
Ora esploriamo diversi aspetti della modularità in Java.
Sebbene la modularità sia stata introdotta in Java 9, esploreremo il concetto di Java 11 con un semplice esempio di creazione di una calcolatrice. Creeremo una calcolatrice semplice ma avanzata che controlla i numeri primi, calcola la loro somma, sia che un numero sia pari o meno.
Passaggio 1: creazione del modulo
Il primo passo è creare moduli e puoi scegliere di creare più moduli in base alla complessità. Qui stiamo creando due moduli distinti,
- Matematica. modulo utile
- Modulo calcolatrice
Il primo modulo ha un'API o un'interfaccia del programma applicativo per l'esecuzione di calcoli matematici. Allo stesso tempo, il secondo modulo avvia la calcolatrice.
Passaggio 2: esecuzione dei moduli
Eseguiremo il modulo API nel browser implementandolo nella classe com.upgrad.math.MathUtil,
public static Boolean isPrime(Numero intero){
if ( numero == 1 ) { return false; }
return IntStream.range(2,num).noneMatch(i -> num % i == 0 );
}
Possiamo controllare il modulo con una funzione.
public static Boolean isEven(Numero intero){
numero restituito % 2 == 0;
}
Se stai pensando di controllare i numeri per sapere se sono pari o dispari, possiamo eseguire un'altra funzione.
public static Intero sumOfFirstNEvens(contatore intero){

restituisce IntStream.iterate(1,i -> i+1)
.filter(j -> isEven(j))
.limit(count).sum();
}
public static Intero sumOfFirstNOdds(Numero intero){ return IntStream.iterate(1,i -> i+1) .filter(j -> !isEven(j)) .limit(count).sum(); }
Finora abbiamo eseguito due funzioni sui modelli API e fatto le seguenti osservazioni.
- C'è una sequenza infinita a partire dal numero 1
- La filtrazione dei numeri viene ripetuta.
- Il flusso di numeri è limitato.
- Trovare la somma dei numeri
Sulla base di queste osservazioni, uno sviluppatore può eseguire il refactoring dell'API ed eseguirla.
Integer computeFirstNSum(Conteggio intero,
Filtro IntPredicate){
restituisce IntStream.iterate(1,i -> i+1)
.filtro(filtro)
.limit(count).sum();
}
Qui, dobbiamo trovare la somma dei numeri che è limitata dal conteggio. Dovremo anche trovare il filtro per i numeri nelle condizioni per le quali verrà eseguita la somma.
Ricreiamo le API in base alle nuove condizioni che abbiamo esplorato.
public static Intero sumOfFirstNPrimes(contatore intero){
return computeFirstNSum(count, (i -> isPrime(i)));
}
public static Integer sumOfFirstNEvens(numero intero){ return computeFirstNSum(count, (i -> isEven(i))); }
public static Integer sumOfFirstNOdds(numero intero){ return computeFirstNSum(count, (i -> !isEven(i)));
Ora che abbiamo testato le API e rifattorizzato, inseriamo la classe com.upgrad.math.MathUtil in un modulo.
Passaggio 3: inserimento della classe di utilità in un modulo
Per inserire una piccola classe di utilità nel modulo chiamato math. util, devi seguire alcune convenzioni come
- Metti tutto il codice relativo al modulo API in una directory con lo stesso nome e usalo come directory radice.
- Inserisci module-info.java nella cartella principale
- Metti tutti i pacchetti e i codici nella directory principale.
Passaggio 4: creazione di una definizione di modulo per la calcolatrice
Creeremo un modulo di una calcolatrice che richiede math.utl.
calcolatore del modulo{
richiede math.util;
}
Possiamo compilare il codice seguendo,
javac -d mods –module-source-path . $(trova . -nome “*.java”)
Dopo aver compilato i codici dalla calcolatrice e dai moduli math.utl nella directory mods, un singolo comando includerà le dipendenze tra questi due moduli, cosa che viene eseguita tramite un compilatore. Non è necessario creare strumenti dedicati per creare dipendenze tra calcolatrice e maths.utl.
Passaggio 5: eseguire il codice

Una volta che hai entrambi i moduli nella directory mods e le dipendenze in posizione, ora è il momento di eseguire il codice. L'esecuzione metterà in azione il nostro calcolatore semplice e avanzato.
java –module-path mods -m calculator/com.upgrad.calculator.Calculator
Da leggere: Progetti e argomenti Java interessanti
Conclusione
Secondo un sondaggio , Java è la seconda lingua preferita in termini di nuovi annunci di lavoro, il che lo rende un'ottima scelta per i principianti.
Se sei interessato a saperne di più su Java, OOP e lo sviluppo di software full-stack, dai un'occhiata al programma Executive PG di upGrad e IIIT-B in Full-stack Software Development, progettato per i professionisti che lavorano e offre oltre 500 ore di formazione rigorosa, Oltre 9 progetti e incarichi, stato di Alumni IIIT-B, progetti pratici pratici e assistenza sul lavoro con le migliori aziende.
