Modularitatea în Java explicată cu un exemplu pas cu pas [2022]

Publicat: 2021-01-02

Când îți propui să fii programator Java, există o mulțime de oportunități. În medie, un programator Java câștigă în jur de 69.722 USD pe lună, ceea ce reprezintă o plată frumoasă . Aflați mai multe despre salariul dezvoltatorului Java în India. Dacă intenționați să aveți o carieră solidă în programarea Java, atunci modularitatea este ceva ce ar trebui să învățați mai întâi. Este una dintre părțile vitale ale programării software moderne. Deci, să înțelegem mai întâi ce este un modul?

Ce este modularitatea în Java?

Un modul este mai mult ca o partiție independentă de software care este comunicată printr-o interfață. Modularitatea explorează crearea unui program utilizând module diferite decât o singură arhitectură moștenită. Este mai mult ca microservicii într-o arhitectură MVC, în care întregul sistem este o suită de servicii independente.

Cu modularitate, partiționarea mediului software în diferite module face ca întregul proces să fie mai optimizat și reduce efectul de cuplare. Ajută dezvoltatorii Java să efectueze teste de funcționalitate din mers, în timp ce procesul de dezvoltare este în desfășurare simultan.

Modularitatea în Java se asigură că timpul de dezvoltare este redus cu testarea și depanarea din mers.

Acum că știm despre modularitate, să înțelegem de ce aveți nevoie de ea?

Citiți: Întrebări și răspunsuri la interviu Java

Înscrieți-vă la cursurile de inginerie software de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

De ce avem nevoie de modularitatea Java?

Modularitatea ajută un dezvoltator Java în trei moduri,

Reutilizabilitate: reutilizarea poate ajuta dezvoltatorii să economisească timp folosind același cod în timp ce creează o versiune mai nouă a software-ului sau a aplicației. Cu modularitatea în Java, puteți reutiliza modulele în altă parte decât software-ul dezvoltat inițial.

Stabilitate: Modularitatea ajută la menținerea stabilității software-ului în timp ce se efectuează modificări în secțiuni individuale ale codului. Înseamnă că noile modificări rămân ascunse consumatorilor și pot fi testate cu ușurință fără a afecta software-ul existent.

Dezvoltare paralelă: dezvoltatorii Java pot dezvolta rapid module paralele între ele. Odată ce toate modulele sunt dezvoltate, acestea pot fi combinate printr-o interfață pentru a crea o suită. Utilizarea dezvoltării paralele poate economisi timp.

Acum să explorăm diferite aspecte ale modularității în Java.

Deși modularitatea a fost introdusă în Java 9, vom explora conceptul pentru Java 11 cu un exemplu simplu de creare a unui calculator. Vom crea un calculator simplu și totuși avansat care verifică numerele prime, calculează suma lor, indiferent dacă un număr este par sau nu.

Pasul 1: Crearea modulului

Primul pas este să creați module și puteți alege să creați mai multe module în funcție de complexitate. Aici, creăm două module distincte,

  1. Matematică. modul util
  2. Modulul calculatorului

Primul modul are o interfață API sau Program de aplicație pentru executarea calculelor matematice. În același timp, al doilea modul lansează calculatorul.

Pasul 2: Executarea modulelor

Vom executa modulul API în browser, implementându-l în clasa com.upgrad.math.MathUtil,

public static Boolean isPrime(număr întreg){

if ( number == 1 ) { return false; }

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

}

Putem verifica modulul cu o funcție.

public static Boolean isEven (număr întreg){

returnează numărul % 2 == 0;

}

Dacă vă gândiți să verificați numerele dacă sunt pare sau impare, putem executa o altă funcție.

public static Integer sumOfFirstNEvens(Număr întreg){

returnează IntStream.iterate(1,i -> i+1)

.filter(j -> isEven(j))

.limită(număr).sumă();

}

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

Deci, până acum am executat două funcții pe modelele API și am făcut următoarele observații.

  • Există o succesiune infinită care începe de la numărul 1
  • Se repetă filtrarea numerelor.
  • Fluxul de numere este limitat.
  • Aflarea sumei numerelor

Pe baza acestor observații, un dezvoltator poate refactoriza API-ul și îl poate executa.

Integer computeFirstNSum(Număr întreg,

filtrul IntPredicate){

returnează IntStream.iterate(1,i -> i+1)

.filtru (filtru)

.limită(număr).sumă();

}

Aici, trebuie să găsim suma numerelor care este limitată de numărare. De asemenea, va trebui să găsim filtrul pentru numere în condițiile pentru care se va executa însumarea.

Să recreăm API-urile pe baza noilor condiții pe care le-am explorat.

public static Integer sumOfFirstNPrimes(număr întreg){

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)));

Acum că am testat API-urile și le-am refactorizat, să plasăm clasa com.upgrad.math.MathUtil într-un modul.

Pasul 3: Inserarea clasei de utilitate într-un modul

Pentru a introduce o mică clasă de utilitate în modulul numit math. util, trebuie să urmați niște convenții precum

  • Pune tot codul legat de modulul API într-un director cu același nume și folosește-l ca director rădăcină.
  • Introduceți module-info.java în folderul rădăcină
  • Pune toate pachetele și codurile în directorul rădăcină.

Pasul 4: Crearea unei definiții de modul pentru calculator

Vom crea un modul al unui calculator care necesită math.utl.

calculator modul{

necesită math.util;

}

Putem compila codul urmând,

javac -d mods –module-source-path . $(găsește . -nume „*.java”)

Odată ce compilăm codurile din modulele calculator și math.utl din directorul mods, O singură comandă va include dependențe între aceste două module, ceea ce se face printr-un compilator. Nu este nevoie să creați instrumente dedicate pentru a crea dependențe între calculator și maths.utl.

Pasul 5: Executați codul

Odată ce aveți atât modulele din directorul mods, cât și dependențele, acum este momentul să executați codul. Execuția va aduce calculatorul nostru simplu și avansat în acțiune.

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

Trebuie citit: Proiecte și subiecte Java interesante

Concluzie

Potrivit unui sondaj , Java este a doua limbă preferată în ceea ce privește o nouă postare de locuri de muncă, ceea ce îl face o alegere excelentă pentru începători.

Dacă sunteți interesat să aflați mai multe despre Java, OOP și dezvoltarea de software full-stack, consultați programul Executive PG de la upGrad și IIIT-B în dezvoltarea de software Full-stack, care este conceput pentru profesioniști care lucrează și oferă peste 500 de ore de formare riguroasă, Peste 9 proiecte și sarcini, statutul de absolvenți IIIT-B, proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Pregătiți-vă pentru o carieră a viitorului

Aplicați acum pentru masterat în inginerie software