Inhaltsverzeichnis
Dies ist der dritte Teil einer Reihe von Tutorials, die sich auf die Überprüfung der grundlegenden Themen der Java-Sprache konzentrieren, um den Leser auf die Verwendung des Spring Frameworks vorzubereiten. Der erste Teil dieser Tutorial-Reihe ist hier und der zweite Teil hier erhältlich. In diesem Tutorial werden wir darüber sprechen, was Schnittstellen sind, was Programmierschnittstellen sind, ihre Vorteile und wie sie sich auf das Spring Framework beziehen.Wir haben bereits die Konzepte der Vererbung und des Polymorphismus gesehen, und Interfaces sind eine Art Java-Klasse, die sich durch die Darstellung einer bestimmten Funktionalität auszeichnet. In ihrer gebräuchlichsten Form sind Interfaces eine Klasse, die aus Methoden ohne Implementierung besteht.
Schnittstelle Drawable {öffentliche Leere zeichnen (); public void selectColor (Zeichenfolgefarbe); }
Schnittstellen sind immer öffentlich und abstrakt, unabhängig davon, ob Sie Modifikatoren festlegen oder nicht, und stellen die Art und Weise dar, wie andere Objekte mit dem Objekt interagieren, das sie implementiert. Es mag kompliziert klingen, aber es ist einfach, wenn eine Klasse eine Schnittstelle implementiert, ist sie gezwungen, den entsprechenden Methoden einen Rumpf zu geben. Das heißt, solange ein Objekt eine Schnittstelle implementiert, können Sie absolut sicher sein, dass dieses Objekt die Methoden hat, die der genannten Schnittstelle entsprechen.
In Java werden Schnittstellen mit dem Schlüsselwort "implements" implementiert, und eine Klasse kann eine oder mehrere Schnittstellen implementieren, ist jedoch gezwungen, die Methoden, die jeder Schnittstelle entsprechen, ausnahmslos zu überladen, oder der Compiler gibt einen Fehler aus.
öffentliche Klasse Square implementiert Drawable {public String borderColor; public String Füllfarbe; öffentliche int hoch; öffentliche int-Breite; @Override public void draw() {System.out.println ("Ein Quadrat wird mit Breite" + Breite + ", Höhe" + Höhe + "und Farbe" + Füllfarbe gezeichnet); } @Override public void chooseColor (String color) {fillcolor = color; }}
öffentliche Klasse Line implementiert Drawable {public String Strokecolor; langer öffentlicher String; @Override public void draw() {System.out.println ("Zeichne eine Linie von" + long); } @Override public void chooseColor (String color) {strokecolor = color; }}
In diesem Fall können Sie mit der Schnittstelle problemlos eine beliebige Anzahl von Objekten manipulieren, indem Sie das Konzept des Polymorphismus verwenden, das wir im zweiten Teil gesehen haben, und diese Objekte müssen nicht intrinsisch miteinander verwandt sein, außer durch die Art und Weise, wie andere Klassen interagieren mit ihnen. In unserem Beispiel könnten Sie später Pentagon-, Landschafts- oder sogar ArtWork-Objekte haben, die die Drawable-Schnittstelle implementieren und alle könnten von jeder Klasse behandelt werden, die die Drawable-Schnittstelle manipulieren kann.
java.awt.Color importieren; java.util importieren *; public class DrawThings {// Diese Klasse generiert zufällig zeichbare Objekte und zeichnet sie in zufälligen Farben public static void main (String [] args) {List l = new ArrayList(); for (int i = 0; i0.5) {l.add (neue Zeile ()); } else {l.add (neues Quadrat ()); }} für (Drawable d: l) {float H, S, B; H = (float) Math.zufällig (); S = (float) Math.zufällig (); B = (float) Math.zufällig (); Farbe c = Color.getHSBColor (H, S, ; d.chooseColor (String.valueOf (c)); d. ziehen (); }}}
Wie Sie im Beispiel sehen werden, kann die Hauptmethode in 2 Hauptmethoden unterteilt werden, diejenige, die die Liste der zeichenbaren Objekte ausfüllt, und diejenige, die die Objekte in der Liste zeichnet. Ich lade Sie ein, diese Klassen zu verwenden und zu sehen, wie sie sich verhalten, bevor Sie zum nächsten Abschnitt übergehen, in dem wir sehen, warum Sie die Schnittstelle programmieren möchten.
Am Ende ist ein Interface das gleiche wie sein echtes Gegenstück, Ihre Tastatur und Ihre Maus sind die Schnittstellen, mit denen Sie mit Ihrem Computer interagieren, die internen Details, wie Dinge wie "Klicken" oder "Esc-Taste drücken" ausgeführt werden die Schnittstelle zu Ihrem Computer sind Ihnen verborgen und werden für Sie nicht benötigt. Wichtig ist nur, dass Sie die Esc-Taste und Click über diese Schnittstelle drücken können.
Nachdem Sie sich einmal angesehen haben, was eine Schnittstelle ist, hoffe ich, dass Sie verstehen können, wie wichtig es sein kann, eine Schnittstelle zu programmieren. Im Wesentlichen konzentrieren Sie sich auf die Erstellung Ihrer Programme und denken dabei an die Schnittstelle, die Sie verwenden werden, und nicht so sehr an das Objekt, das Ihnen als Parameter übergeben wird. Im Fall des bisher behandelten Beispiels lässt es sich wie folgt umschreiben:
java.awt.Color importieren; java.util importieren *; public class DrawThings {// Diese Klasse generiert zufällig zeichbare Objekte und zeichnet sie in zufälligen Farben public static void main (String [] args) {List l = new ArrayList(); Liste ausfüllen (l); DrawList (l); } public static void fillList (Liste l) {for (int i = 0; i0.5) {l.add (new Line ()); } else {l.add (neues Quadrat ()); }}} public static void drawList (Liste l) {for (Drawable d: l) {float H, S, B; H = (float) Math.zufällig (); S = (float) Math.zufällig (); B = (float) Math.zufällig (); Farbe c = Color.getHSBColor (H, S, ; d.chooseColor (String.valueOf (c)); d. ziehen (); }}}
Natürlich habe ich nur die Teile der Hauptmethode in die 2 untergeordneten Methoden unterteilt, aber das Schöne daran ist, dass diese beiden Methoden unabhängig voneinander und unabhängig von den Implementierungen der Drawable-Schnittstelle bleiben. Wenn ich eine der beiden Methoden ändern wollte, wäre die andere nicht im Geringsten betroffen, wenn die Pentagon- und ArtWork-Implementierungen erscheinen würden, könnten Sie sie beim Erstellen der Methode fillList (List l) und der drawList ( List) Methode l) würde keine Änderungen erfordern, da sie in die Schnittstelle programmiert wurde.
+ WichtigBeide Methoden können zu verschiedenen Klassen gehören, sie können in verschiedenen Umgebungen behandelt werden und sie können sogar nie wissen, welches Objekt sie wirklich handhaben, aber solange sie die Drawable-Schnittstelle implementieren, können sie sie manipulieren und sie werden es tun in der Lage sein, die 2 Methoden auszuführen, die dieser Schnittstelle zugeordnet sind.
Ich weiß, dass es im Moment furchtbar kompliziert erscheint, aber später werden wir sehen, wie Spring alles handhabt, was auf eine Schnittstelle programmiert ist, und wir werden sogar sehen, wie aspektorientierte Programmierung und das Verständnis uns sehr helfen werden, die Funktionsweise von Spring zu verstehen.
Ich hoffe, wir fahren Woche für Woche mit diesen Tutorials fort, vergessen Sie nicht, Ihre Kommentare bis zum nächsten Mal zu hinterlassen!Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben