Ce este Adaptor Class în Java? Avantajele clasei de adaptoare și tipurile acesteia

Publicat: 2021-05-19

Cuprins

Ce este o clasă de adaptor?

În JAVA, o clasă de adaptor permite implementarea implicită a interfețelor de ascultător. Noțiunea de interfețe de ascultător provine din Modelul de eveniment de delegare. Este una dintre numeroasele tehnici folosite pentru a gestiona evenimente în limbaje de programare Graphical User Interface (GUI), cum ar fi JAVA.

Programarea GUI este în principal bazată pe evenimente, utilizatorul interacționând cu sistemul prin elementele vizuale și grafice asociate. Aceasta înseamnă că fiecare activitate inițiată de utilizator, cum ar fi mișcarea unui mouse care modifică coordonatele indicatorului mouse-ului pe ecran, face clic pe un buton sau derulează o pagină, este considerată un eveniment independent.

Fiecare dintre aceste activități independente de evenimente este legată intrinsec de un segment de cod care repetă ce răspuns ar trebui să ofere aplicația utilizatorului. Calea este simplă. Utilizatorul (sursa) generează un eveniment și îl trimite către una sau mai multe interfețe de ascultător. Odată ce un potențial de eveniment este primit, interfața de ascultător procesează evenimentul și returnează răspunsul potrivit.

Această cale confirmă procesul de gestionare a evenimentelor. Prin urmare, o clasă de adaptor în JAVA este utilizată pentru a implementa o interfață care are un set de metode fictive. Dacă un programator alege să moștenească o clasă de adaptor, nu va fi forțat să implementeze toate metodele enumerate într-o anumită interfață de ascultare. Clasa adaptorului poate fi subclasată, astfel încât programatorul să poată suprascrie numai metodele necesare. Cu alte cuvinte, folosind o clasă de adaptor, programatorul își poate construi rapid propria interfață de ascultător pentru evenimentele de teren. Acest lucru ajută la salvarea codului.

Care este relația dintre o clasă de adaptor și o interfață de ascultător?

Ascultătorii sunt utilizați atunci când programatorul intenționează să utilizeze majoritatea metodelor enumerate în interfață. Dacă o interfață de ascultare este implementată direct de o clasă, toate metodele din acea interfață trebuie implementate, făcând codul nerezonabil de mare. Această complexitate poate fi rezolvată apelând la o clasă de adaptoare. O clasă de adaptor se dovedește esențială în cazurile în care un eveniment necesită doar metode specifice.

Programatorul trebuie doar să creeze o subclasă a acesteia și să suprascrie metodele de interes pentru a utiliza o clasă de adaptor. Clasele de adaptoare sunt, prin urmare, benefice pentru interfețele de ascultător în JAVA care au mai multe metode. Pentru a înțelege mai bine acest lucru, să luăm în considerare exemplul interfeței MouseListener. Această interfață este notificată ori de câte ori există o schimbare în starea mouse-ului. Are cinci metode, mouse clicked, mouseExited, mouseEntered, mousePressed și mouseReleased.

Atunci când sunt notificate împotriva unui eveniment, chiar dacă doar aceste metode sunt necesare, toate acestea trebuie implementate. Metodele care nu sunt necesare sunt păstrate goale. O clasă de adaptor este folosită pentru a evita această implementare inutilă a unui corp de metodă gol.

Înțelegerea modelului de proiectare a adaptorului

În limbajul non-tehnic, un adaptor, prin definiție, este proiectat structural pentru a permite două interfețe incompatibile să funcționeze împreună. Prin urmare, un model de adaptor este capabil să facă compatibile două interfețe incompatibile fără a modifica codul lor existent. Interfețele corespunzătoare pot fi inconsecvente, dar funcționalitățile lor interioare ar trebui să corespundă cerinței căutate. Pentru a clarifica mai bine acest lucru, să luăm în considerare un exemplu relevant.

Suntem conștienți de faptul că diferite țări au prize electrice, tensiuni și măsurători de frecvență diferite. Dacă trebuie să folosim un aparat proiectat conform specificațiilor unei țări în alta, trebuie să ne asigurăm că aparatul este compatibil.

De exemplu, în Marea Britanie, prizele de tip G sunt utilizate în mod obișnuit, în SUA și Japonia, prizele de tip A și tip B, iar în India, tipul C, tipul D și tipul M. Un laptop sau un dispozitiv mobil transportat din India va prin urmare, să fie incompatibil cu specificațiile electrice, de exemplu, SUA și Japonia. Acesta este locul în care scopul unui adaptor devine esențial pentru conversia unui cod incompatibil într-un cod compatibil.

Tipuri de clase de adaptoare

Clasele de adaptoare pot fi găsite în java. Pachetele awt.the event, java.awt.dnd și java.swing.event. Clasele de adaptoare standard cu interfețele lor de ascultare corespunzătoare în JAVA sunt menționate mai jos pentru fiecare dintre aceste pachete.

1. java. awt. ajun

Clasa adaptorului Interfață de ascultător
WindowAdapter WindowListener
KeyAdapter KeyListener
MouseAdapter MouseListener
MouseMotionAdapter MouseMotionListener
FocusAdapter FocusListener
ComponentAdapter ComponentListener
ContainerAdapter ContainerListener
HierarchyBoundsAdapter HierarchyBoundsListener

2. java.awt.dnd

Clasa adaptorului Interfață de ascultător
DragSourceAdapter DragSourceListener
DragTargetAdapter DragTargetListener

3. javax.swing.eveniment

Clasa adaptorului Interfață de ascultător
MouseInputAdapter MouseInputListener
InternalFrameAdapter InternalFrameListener

Acestea sunt prezente în setul de instrumente Abstract Window al pachetelor Java respective. Pentru a înțelege natura metodelor conținute în interfețele de ascultător, să luăm în considerare câteva exemple:

  1. Interfața WindowListener definește metode legate de evenimentele ferestrei, inclusiv deschiderea și închiderea unei ferestre, activarea și dezactivarea unei ferestre și iconificarea și detoxifierea unei ferestre.
  2. Interfața KeyListener definește metode care gestionează evenimente cheie care sunt declanșate de utilizator care interacționează cu componentele tastaturii.
  3. Interfața MouseListener este notificată când un mouse este stabil și primește potențialul de eveniment legat de ieșirea, intrarea, clicul, apăsarea sau eliberarea componentei din cadrul vizual al utilizatorului.
  4. Interfața Component Listener primește potențialele de evenimente ale componentelor. Aici, o componentă se referă la orice obiect grafic conceput pentru a interacționa cu utilizatorul, cum ar fi butoanele, casetele de selectare și barele de defilare.

Diferența dintre adaptorul de clasă și adaptorul de obiecte

Pentru a garanta funcționalitatea și flexibilitatea, programarea orientată pe obiecte, cum ar fi JAVA, oferă programatorilor caracteristici precum moștenirea și compoziția. Dacă încercați să reutilizați un anumit cod moștenind caracteristicile sale de la o altă clasă, subclasa pe care o creați va rămâne dependentă de clasa părinte pe toată durata programului.

Acest lucru face ca sistemul, în multe cazuri, să fie din ce în ce mai complex și mai puțin testabil și face ca schimbul de funcționalități în timpul execuției să fie extrem de dificil. În compoziție, o clasă folosește doar alta. Decuplarea dintre cele două este promovată în continuare prin definirea clară a interfețelor.

Dezbaterea dintre adaptorul de clasă versus adaptorul de obiect poate fi, prin urmare, rezolvată după cum urmează. Class Adapter folosește moștenirea și, prin urmare, este capabil să încapsuleze doar o clasă. Nu poate încheia o interfață deoarece, prin definiție, trebuie să derive dintr-o clasă de bază. Un adaptor de obiect folosește compoziția și, prin urmare, este capabil să încapsuleze atât clase, cât și interfețe. Acest lucru se realizează în primul rând deoarece, în compoziție, fiecare clasă sau interfață este un membru privat, încapsulat.

Avantajele unei clase de adaptoare

  1. O clasă de adaptor ajută clasele neînrudite să lucreze împreună.
  2. Cu utilizarea unei clase de adaptor, aceeași clasă poate fi utilizată în mai multe moduri.
  3. Utilizatorilor li se oferă opțiunea unui kit conectabil pentru dezvoltarea aplicațiilor. Prin urmare, utilizarea clasei devine foarte reutilizabilă.
  4. Îmbunătățește transparența cursurilor.
  5. Oferă o modalitate de a include modele înrudite într-o clasă.

Învață cursuri de inginerie software online 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.

Concluzie

Cu acest articol, am înțeles mecanica unei clase de adaptoare în JAVA, cele trei pachete principale care conțin clase de adaptoare și beneficiile claselor de adaptoare pentru programatori. Clasele adaptoare sunt clase abstracte pentru recepția diferitelor evenimente și există ca o comoditate pentru crearea obiectelor de ascultător. Cu diferitele lor funcționalități, clasele de adaptoare oferă programatorilor platforma pentru a fi inovatoare prin metodologia Swing.

Dacă doriți să vă îmbunătățiți abilitățile Java, trebuie să puneți mâna pe aceste proiecte Java. Dacă sunteți interesat să aflați mai multe despre Java, dezvoltarea full-stack, consultați programul Executive PG de la upGrad și IIIT-B în dezvoltarea software full-stack, care este conceput pentru profesioniști care lucrează și oferă peste 500 de ore de formare riguroasă, 9+ proiecte și sarcini, statutul de absolvenți IIIT-B, proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Ce este clasa adaptorului în Java?

Clasa adaptorului este o clasă care este definită folosind modelul adaptorului. Un adaptor poate fi folosit pentru a adăuga noi capabilități la o clasă existentă fără a modifica clasa originală. De exemplu, clasa java.util.Scanner este din pachetul java.util. Clasa Scanner nu poate citi dintr-un fișier deoarece un fișier nu este un InputStream. Pentru a citi dintr-un fișier, creăm o clasă de adaptor care acceptă un InputStream ca argument și returnează datele procesate ca obiect. Modelul adaptorului este utilizat pentru a extinde funcționalitatea unei clase existente fără a modifica codul acesteia în vreun fel.

Ce sunt modelele de design în Java?

Un model de design este o soluție generală reutilizabilă la o problemă care apare frecvent într-un context dat în proiectarea software. Nu este un design finit care poate fi transformat direct în cod. Este o descriere sau un șablon pentru rezolvarea unei probleme care poate fi folosită în multe situații diferite. În programarea orientată pe obiecte, modelele de proiectare sunt convenții stabilite care ușurează proiectarea și implementarea sistemelor software. Există mai multe modele de design în Java. Nu este necesar ca un model de design să fie preluat dintr-un alt limbaj. Modelele de design pot fi scrise într-o formă foarte simplă și scurtă.

Care este modelul de design cel mai folosit în Java?

Veți găsi multe modele de design în Java. Singurul model de design cel mai folosit este Factory Pattern. Are multe aplicații în dezvoltarea întreprinderilor. Ajută la eliminarea dependenței de clase concrete din aplicație. Să vă dăm un exemplu din viața reală. Într-o aplicație de comerț electronic, este posibil să aveți o cerință de a crea un obiect al unui utilizator atât în ​​mediul de testare, cât și în mediul de producție. Clasa de utilizatori poate avea multe subclase cum ar fi Admin, Shopkeeper, Seller, User etc. Metoda principală comună în modelul fabricii arată astfel: public class UserFactory { public static Object create () { User user = createAdmin (); // vezi dacă administratorul are permisiunea de a returna utilizatorul ; // returnează utilizatorul curent } }. Vedeți aici cum clasa de utilizator nu depinde de clasa concretă. Deși nu este un exemplu complet, vă arată cum funcționează modelul Factory.