Modele de design: Singleton în Java

Publicat: 2021-11-13

Modelele de proiectare sunt benefice pentru programatori atunci când trebuie să utilizeze cele mai bune practici disponibile în dezvoltarea software-ului orientat pe obiecte. Modelele de proiectare pot fi înțelese ca soluții bine dovedite și încercate și testate pentru rezolvarea problemei de proiectare la îndemână. Design Systems descrie problema, soluția, când se aplică soluția și consecințele acesteia. Într-un fel, modelele de design pot fi gândite ca diferite șabloane pe care dezvoltatorii de software le pot implementa atunci când rezolvă probleme specifice de proiectare orientate pe obiecte.

Unele dintre caracteristicile utilizării modelelor de design în Java în comparație cu codarea de la zero includ:

  • Modelele de design sunt deja definite și implementate. Ca rezultat, ele oferă o abordare standard pentru rezolvarea problemelor repetitive. În acest sens, îi ajută pe programatori să economisească mult timp și efort.
  • Utilizarea Design Patterns asigură reutilizarea fragmentului dvs. de cod, ceea ce duce la o întreținere ridicată și robustețe a codului dvs. Java. Toate acestea reduc apoi costul total de proprietate (TCO) al software-ului la îndemână.
  • Modelele de design fac codul ușor de citit și de înțeles, ceea ce duce la o comunicare mai rapidă și la o dezvoltare fără întreruperi de software.

Limbajul de programare Java oferă diverse modele de design pentru programatori și dezvoltatori, care pot fi împărțite în trei categorii:

  • Modele de design creațional
  • Modele de proiectare structurală
  • Modele de design comportamental

Toate aceste modele sunt folosite pentru diferite cazuri de utilizare și scopuri. Prin acest articol, să vorbim despre un tip de model de design în Java – Model de design Singleton, care se încadrează în categoria Modele de design creațional.

Cuprins

Model de design Singleton în Java

Singleton Design Pattern aparține categoriei Creational Design Pattern. Se asigură că o clasă are o singură instanță, oferind acestei instanțe un punct de acces global. Făcând acest lucru, modelul de design Singleton rezolvă două probleme simultan - acestea includ:

1. Se asigură că o anumită clasă are o singură instanță.

Acest lucru este important de luat în considerare, mai ales atunci când lucrați la resurse partajate, cum ar fi o bază de date sau un fișier. Imaginați-vă că ați creat un obiect, dar după un timp, ați decis să creați unul nou. În modelul de design Singleton, în loc să primiți un obiect nou, îl veți obține pe cel pe care l-ați făcut deja. În acest fel, acest model de design asigură nicio redundanță a obiectelor și că o clasă are o singură instanță. Acest comportament este imposibil de replicat cu constructori, deoarece apelurile constructorului trebuie să returneze întotdeauna un obiect nou.

2. Oferă un punct de acces global pentru o anumită instanță.

Variabilele globale pe care le utilizați pentru a stoca obiecte esențiale sunt destul de utile. Ele sunt, de asemenea, la fel de nesigure, deoarece orice bucată de cod are puterea de a suprascrie conținutul variabilelor tale globale, ceea ce duce la o bucată de cod eronată pentru tine. La fel ca variabilele globale, Singleton Patterns vă permite să accesați diferite obiecte de oriunde în program. Cu toate acestea, spre deosebire de variabilele globale, Singleton Patterns asigură ca instanța să nu fie suprascrisă de un alt program.

În zilele noastre, modelul de design Singleton este atât de utilizat și de răspândit încât programatorii pot numi ceva Singleton chiar dacă rezolvă doar una dintre problemele enumerate mai sus. Toate implementările Singleton Design Patterns au următorii doi pași în comun:

  • Faceți privat constructorul implicit pentru a împiedica alte clase și obiecte să utilizeze noi operatori cu clase Singleton.
  • Construirea unei metode de creare statică pentru a funcționa ca un constructor. Această metodă, apoi, apelează constructorul privat pentru a crea un obiect și îl salvează într-un câmp static. Toate apelurile viitoare către această metodă special returnează acum obiectul din cache.

Funcționarea guvernului este un exemplu excelent în viața reală pentru a înțelege cum funcționează modelele de design Singleton. Indiferent de identitățile personale ale indivizilor care constituie guvernele, titlul, „Guvernul lui X”, este punctul global de acces care identifică grupul de oameni despre care se vorbește.

Implementarea modelului de design Singleton în Java

Vă rugăm să parcurgeți următoarea listă de pași pentru a vă implementa propriul model de design Singleton în Java:

  • Adăugați un câmp static privat la clasa în care doriți să stocați instanța singleton.
  • Pentru a obține instanța singleton corespunzătoare, trebuie să declarați o metodă publică statică.
  • Acum, trebuie să executați „inițializarea leneșă” în cadrul metodei statice. Acest lucru ar trebui, în esență, să dezvolte un nou obiect la prima sa apelare și să îl plaseze în câmpul static. Metoda statică trebuie să returneze întotdeauna acea instanță specială la toate apelurile ulterioare.
  • Faceți constructorul privat. Metoda statică a clasei va putea apela în continuare constructorul, dar nu și celelalte obiecte.
  • Vă rugăm să treceți peste codul clientului și să înlocuiți toate apelurile directe către constructorul lui Singleton cu apeluri către metoda sa de creare statică.

În concluzie

Java este un limbaj de programare foarte divers și influent și a apărut ca fundație pentru majoritatea aplicațiilor web și desktop utilizate în prezent. Oferă mai multe caracteristici și strategii pe care programatorii le pot folosi pentru a dezvolta software mai performant într-un mod optimizat. Modelele de design sunt o astfel de strategie adoptată de programatorii Java pentru a face codurile lor lizibile, reutilizabile și ușor de înțeles.

Modelele de design formează unul dintre conceptele de bază la care ar trebui să se uite orice dezvoltator de software aspirant. Lumea dezvoltării software este vastă și acoperă toate aspectele de la front-end, back-end, baze de date, server și multe altele. Într-un astfel de scenariu, nevoia orei este de a fi organizată în abordarea dumneavoastră de a învăța. La upGrad, puteți consulta cursuri de dezvoltare software care vă vor ajuta să vă construiți o carieră de lungă durată în domeniul dezvoltării software. Oferit în colaborare cu IIIT-B, acest curs este predat de experți din industrie și vă oferă șansa de a vă avansa cariera în direcția pe care o alegeți. Consultați detaliile cursului și înscrieți-vă astăzi – cursul începe pe 30 septembrie 2021!

Singleton Design Pattern este singurul model de design disponibil cu Java?

Nu, Java oferă multe modele de design pentru programatori, iar Singleton este doar unul dintre ele.

Care sunt tipurile de modele de design disponibile cu Java?

Java oferă în mare trei tipuri de modele de design pentru dezvoltatori;
1. Modele de design creațional
2. Modele de proiectare structurală
3. Modele de design comportamental

Care sunt beneficiile utilizării modelelor de design în Java?

Utilizarea modelelor de design în codul dvs. oferă următoarele avantaje sigure:
1. Lizibilitate îmbunătățită
2. Îmbunătățiți modularitatea
3. Acces facil
4. Ușurință în proiectarea și crearea de programe.