Java / Spring - Programmeringsgrensesnitt

Innholdsfortegnelse
Dette er den tredje delen av en serie opplæringsprogrammer som fokuserer på å gjennomgå de grunnleggende temaene i Java -språket for å forberede leseren i bruk av Spring Framework. Den første delen av denne opplæringsserien kan fås her og den andre delen kan fås her. I denne opplæringen vil vi snakke om hva grensesnitt er, hva som er programmeringsgrensesnitt, dets fordeler og hvordan det forholder seg til Spring Framework.
Vi har allerede sett begrepene arv og polymorfisme og grensesnitt er en type Java -klasse som er preget av å representere en bestemt funksjonalitet. I sin vanligste form er grensesnitt en klasse som består av metoder uten implementering.
 grensesnitt Drawable {public void draw (); public void selectColor (strengfarge); } 

Grensesnitt er alltid offentlige og abstrakte uansett om du angir modifikatorer eller ikke og representerer måten andre objekter samhandler med objektet som implementerer dem. Det kan høres komplisert ut, men det er enkelt, når en klasse implementerer et grensesnitt, blir den tvunget til å gi en kropp til de tilsvarende metodene. Dette betyr at så lenge et objekt implementerer et grensesnitt, kan du være helt sikker på at objektet har metodene som tilsvarer det nevnte grensesnittet.
I Java implementeres grensesnitt med søkeordet "implementerer", og en klasse kan implementere ett eller flere grensesnitt, men blir tvunget til å overbelaste metodene som tilsvarer hvert grensesnitt uten unntak, ellers vil kompilatoren kaste en feil.
 offentlig klasse Square implementerer Drawable {public String borderColor; offentlig String fillcolor; offentlig int høy; offentlig int bredde; @Override public void draw () {System.out.println ("En firkant tegnes med bredde" + bredde + ", høyde" + høyde + "og farge" + fyllfarge); } @Override public void selectColor (strengfarge) {fillcolor = color; }} 

 offentlig klasse Line implementerer Drawable {public String strokecolor; lang offentlig streng; @Override public void draw () {System.out.println ("Draw a line of" + long); } @Override public void selectColor (strengfarge) {strokecolor = color; }} 

I dette tilfellet lar grensesnittet deg manipulere et hvilket som helst antall objekter uten problemer ved å bruke begrepet polymorfisme som vi så i den andre delen, og disse objektene trenger ikke å være iboende relatert til hverandre, bortsett fra måten andre klasser interagerer på med dem. Når det gjelder vårt eksempel, kan du senere ha femkant-, landskap- eller ArtWork -objekter som implementerer Drawable -grensesnittet, og de kan alle håndteres av en hvilken som helst klasse som kan manipulere Drawable -grensesnittet.
 importer java.awt.Color; import java.util. *; public class DrawThings {// Denne klassen genererer tilfeldig tegnbare objekter og tegner dem i tilfeldige farger public static void main (String [] args) {List l = new ArrayList (); for (int i = 0; i0.5) {l.add (ny linje ()); } annet {l.add (nytt torg ()); }} for (Drawable d: l) {float H, S, B; H = (float) Math.random (); S = (flyte) Math.random (); B = (float) Math.random (); Farge c = Color.getHSBColor (H, S, B); d.chooseColor (String.valueOf (c)); d. draw (); }}} 

Som du vil se i eksemplet, kan hovedmetoden skilles i to hovedmetoder, den som fyller listen over tegnbare objekter og den som tegner objektene i listen. Jeg inviterer deg til å bruke disse klassene og se hvordan de oppfører seg før du går videre til neste avsnitt hvor vi vil se hvorfor du kanskje vil programmere grensesnittet.
Til slutt er et grensesnitt det samme som det virkelige motstykket, tastaturet og musen er grensesnittene du interagerer med datamaskinen din, de interne detaljene om hvordan ting som "Klikk" eller "Trykk på Esc -tasten" utføres fra grensesnittet til datamaskinen din er skjult for deg og er ikke nødvendig for deg. Det eneste som betyr noe er at du kan trykke på Esc -tasten og Klikk ved hjelp av det grensesnittet.
Når du har gjennomgått hva et grensesnitt er, håper jeg at du kan forstå hvor viktig det kan være å programmere et. I hovedsak fokuserer du på å lage programmene dine og tenke på grensesnittet du skal bruke, og ikke så mye om objektet som ville bli sendt til deg som en parameter. Når det gjelder eksemplet vi har håndtert så langt, kan det skrives om på følgende måte:
 importer java.awt.Color; import java.util. *; public class DrawThings {// Denne klassen genererer tilfeldig tegnbare objekter og tegner dem i tilfeldige farger public static void main (String [] args) {List l = new ArrayList (); fillist (l); drawList (l); } public static void fillList (List l) {for (int i = 0; i0.5) {l.add (new Line ()); } annet {l.add (nytt torg ()); }}} offentlig statisk void drawList (Liste l) {for (Drawable d: l) {float H, S, B; H = (float) Math.random (); S = (float) Math.random (); B = (float) Math.random (); Farge c = Color.getHSBColor (H, S, B); d.chooseColor (String.valueOf (c)); d. draw (); }}} 

Absolutt at jeg bare atskilt delene av hovedmetoden til de to barnemetodene, men skjønnheten i dette er at de to metodene opprettholder uavhengighet fra hverandre og opprettholder uavhengighet fra implementeringene av Drawable -grensesnittet. Hvis jeg ønsket å endre en av de to metodene ville den andre ikke bli påvirket i det minste. Hvis Pentagon og ArtWork -implementeringene skulle vises, kan du legge dem til i prosessen med å lage fillList (List l) -metoden og drawList ( Liste) metode. L) vil ikke kreve noen endringer fordi den er programmert i grensesnittet.
+ ViktigDet er at begge metodene kan tilhøre forskjellige klasser, de kan håndteres i forskjellige miljøer, og de kan til og med aldri vite hvilket objekt de virkelig håndterer, men så lenge de implementerer Drawable -grensesnittet, vil de kunne manipulere det og de vil være i stand til å utføre de 2 metodene som er knyttet til det grensesnittet.
Jeg vet at det virker veldig komplisert for øyeblikket, men senere får vi se hvordan Spring håndterer alt som er programmert til et grensesnitt, og vi vil til og med se hvordan aspektorientert programmering og forståelse dette vil hjelpe oss mye å forstå hvordan våren fungerer.
Jeg håper vi fortsetter med disse opplæringene uke for uke, ikke glem å legge igjen kommentarene dine til neste gang!Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng
wave wave wave wave wave