Im Folgenden werde ich zwei Beispiele verwenden, um die Skalierbarkeit von polymorphem in Java vollständig zu veranschaulichen. Als ausgezeichneter Programmierer müssen Sie die Skalierbarkeit von Programmen verstehen, die der anschließenden Entwicklung von Programmen sehr förderlich sind.
Das erste Beispiel:
Verwenden Sie als Beispiel das Motherboard des Computers. Für das Motherboard des Computers, mit dem wir vertraut sind, enthält es viele Module, Netzwerkkarten und Soundkarten? Wenn Sie diese Funktionen verwenden möchten, können Sie das Motherboard nur zum Ausführen verwenden und dann die Netzwerkkarten und Soundkarten mit Strom versorgen. Aber wie kann dies in der Softwaresprache erreicht werden? Müssen Sie das Motherboard zuerst und dann die Soundkarte oder die Netzwerkkarte laufen lassen? Auf diese Weise ist die Erweiterung jedoch nicht hoch, und der Betrieb des Ausführens der Soundkarte und der Netzwerkkarte wird wiederholt. Darüber hinaus haben viele Module auch solche Funktionen, sodass Sie das Modul einfach auf dem Motherboard ausführen können. Dies ist einer von ihnen. Wenn an diesem Tag, wenn die Technologie aktualisiert wird und ein neues Modul angezeigt wird, müssen Sie das Modulobjekt erstellen und dann erneut ausführen? Dies ist offensichtlich nicht der Entwicklung förderlich. Für dieses Problem werden die Hersteller von Motherboard -Herstellern jedoch mit den Herstellern der Soundkarten- und Netzwerkkartenkarten eine PCI -Schnittstelle verwenden, um das Motherboard und das Modul in Zukunft zu verbinden, was das Problem der Unfähigkeit, Updates zu verwenden oder wiederverwendet zu werden. Dies entspricht dem Polymorphismus in unserer Java. Mit Polymorphismus können wir die Skalierbarkeit des Programms erheblich verbessern!
Der spezifische Code ist wie folgt!
/*Anforderungen: Computer Ausführende Beispiele, Computer basierend auf dem Motherboard. */Schnittstelle pci {public void open (); public void close ();} Klasse Mainboard {public void run () {System.out.println ("Mainboard run"); } public void usepci (pci p) // pci p = new netcard () // Schnittstellenverlagerungspunkte auf ein eigenes Subklassenobjekt. {if (p! = null) {p.open (); p.CLOSE (); }}} class netcard implementiert pci {public void open () {System.out.println ("netcard open"); } public void close () {System.out.println ("netcard close"); Verfahren(); }} class SoundCard implementiert pci {public void open () {System.out.println ("Soundcard Open"); } public void close () {System.out.println ("Soundcard Close"); }}/*Klasse Mainboard {public void run () {System.out.println ("Mainboard run"); } public void usenetcard (netcard c) {c.open (); C.CLOSE (); }} class netcard {public void open () {System.out.println ("netcard open"); } public void close () {System.out.println ("netcard close"); }}*/class Duotaidemo5 {public static void main (String [] args) {Mainboard mb = new Mainboard (); mb.run (); mb.usepci (null); mb.usepci (new netcard ()); mb.usepci (neuer Soundcard ()); }}Das zweite Beispiel:
Verwenden Sie gemeinsame Datenbanken, um den Polymorphismus zu erklären. In Bezug auf Datenbanken, mit denen wir vertraut sind, gibt es derzeit zwei Datenbankverbindungsmodi: JDBC und Hibernatelian Connection. Bei Verwendung von Datenbanken gibt es zwei wesentliche Vorgänge: Verbindung und Schließen. Verwenden Sie zu diesem Zeitpunkt die Schnittstelle, um diese beiden Vorgänge zu verkapulieren, und Sie müssen den Verbindungsmodus verwenden, um den Klassennamen direkt zu ändern!
Der spezifische Code ist wie folgt!
/*Anforderungen: Datenbankbetrieb. Die Daten sind: Benutzerinformationen. 1. Verbinden Sie eine Verbindung zur Datenbank. JDBC Hibernate2 betreibt die Datenbank. C Erstellen Sie R Read u Aktualisieren D Delete3 Schließen Sie die Datenbankverbindung. */interface userInfodao {public void add (Benutzer Benutzer); public void delete (Benutzer Benutzer);} Klasse userInfobyjdbc implementiert userInofdao {public void add (Benutzerbenutzer) {1, JDBC stellt eine Verbindung zur Datenbank her. ; 2. Verwenden Sie SQL, um Anweisung hinzuzufügen, um Daten hinzuzufügen. ; 3, schließen Sie die Verbindung. } public void delete (Benutzer Benutzer) {1, JDBC stellt eine Verbindung zur Datenbank her. ; 2. Verwenden Sie die SQL -Anweisung zum Löschen von Daten. ; 3, schließen Sie die Verbindung. }} Klasse userInfobyhiberNate implementiert userInfodao {public void add (Benutzer Benutzer) {1, Hibernate stellt eine Verbindung zur Datenbank her. ; 2. Verwenden Sie SQL, um Anweisung hinzuzufügen, um Daten hinzuzufügen. ; 3, schließen Sie die Verbindung. } public void delete (Benutzer Benutzer) {1, Hibernate stellt eine Verbindung zur Datenbank her. ; 2. Verwenden Sie die SQL -Anweisung zum Löschen von Daten. ; 3, schließen Sie die Verbindung. }} class dBoperate {public static void main (String [] args) {// userInfobyjdbc ui = new UserInfobyjdbc (); // userInfoByHiNRNate UI = new UserInfobyhibernate (); UserInfodao ui = new userInfobyhiberNate (); ui.add (Benutzer); UI.Delete (Benutzer); }}Zusammenfassen:
1. Beide Beispiele verwenden Schnittstellen, um einige sich wiederholende Operationen abstrahieren. Um verschiedene Module direkt und schnell zu ermöglichen, können wir die polymorphe Aufwärtstransformation direkt verwenden (siehe mein vorheriges Blog) und dann die übergeordnete Klassenreferenz verwenden, um sie aufzurufen. Unabhängig davon, ob die Technologie aktualisiert wird und neue Module verfügbar sind oder vorhandene Module ersetzt werden, können wir die übergeordnete Klassenreferenz verwenden, um ihre gemeinsamen Vorgänge direkt aufzurufen!
2. Sie müssen keine Schnittstellen verwenden, Sie können auch abstrakte Klassen verwenden. Die Verwendung von Schnittstellen wird jedoch skalierbarer sein. Wenn Sie sie in Zukunft aktualisieren, können Sie die Schnittstelle direkt ändern, ohne die abstrakten Klassen zu ändern. Zweitens kann die Verwendung von Schnittstellen mehr vererbt werden! Dies ist auch ein bequemer Ort.
Der obige Artikel Java verwendet zwei Beispiele, um die Skalierbarkeit von Polymorphismen vollständig zu veranschaulichen. Dies ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.