Dieser Artikel beschreibt die Leistungsadapterfunktion in Anwendungen des Java -Adaptermodus. Teilen Sie es für Ihre Referenz wie folgt weiter:
1. Musterdefinition
Es gibt zwei Adaptermodi
1 Objektadaptermodus In diesem Adaptermodus enthält der Adapter eine physische Entität des von ihm abwickelten Klassenobjekts.
Klasse -2 -Adaptermodus In diesem Adaptermodus erbt der Adapter aus der implementierten Klasse.
2. Beispiele des Modells
1 Musteranalyse
Wir leihen uns einen Bleistift -Power -Adapter aus, um diesen Modus zu veranschaulichen.
Bereits vorhandener Wechselstromlaptop -Stromadapter
2 Statische Modellierung des Adaptermodus
3 Code Beispiele
3.1 Abstrakte Stromversorgungseinrichtung
Paket com.demo.power;/** * Power Base Class * * @Author * */public Abstract Class Absbasepower {// Spannungswert private Float Power; // Einheit Private String Unit = "V"; // Methode Construct public absbasepower (float power) {this.power = power; } public float getPower () {return Power; } public void setpower (float power) {this.power = power; } public String getunit () {return Unit; } public void setUnit (String -Einheit) {this.unit = unit; }}3,2 220 V Stromschnittstelle
Paket com.demo.power.v220;/** * 220V Power Interface * * @Author * * */public interface iPower220 {// 220V AC Netzteil Druck public void output220v ();}3.3 220 V Stromversorgungs Implementierungsklasse
Paket com.demo.power.v220; import com.demo.power.absbasepower;/** * 220V Stromversorgung * * @Author * */public class Power220 erweitert AbsbasePower implements iPower220 {// Methode öffentlich Power220 () {Super (220); } // 220V Ausgabe public void output220v () {System.out.println ("--- this is [" + this.getPower () + this.getUnit () + "] power! ..."); }}3,4 12 V Power Interface
Paket com.demo.power.v12;/** * 12V Power Interface * * @Author * */public interface ipower12 {// 12V Stromversorgungsdrucken public void output12v ();}3,5 12 V Stromversorgungs Implementierungsklasse
Paket com.demo.power.v12; importieren com.demo.power.absbasepower;/** * Normal 12V Netzteile * * @Author * */public class Power12 erweitert AbsbasePower implements iPower12 {// 12V Stromversorgungsbaumethode öffentlich Power 12 () {Super (12); } // 12V Ausgabe public void output12v () {System.out.println ("--- this is [" + this.getPower () + this.getUnit () + "] power! ..."); }}3,6 12V -Leistungsobjektadapter
Paket com.demo.adapter; import com.demo.power.absbasepower; import com.demo.power Absbasepower; // Adapterkonstruktionsmethode übergibt das zu verwandelne Objekt in öffentliche Adapterpower12 (Absbasepower Absbasepower) {this.absbasepower = absbasepower; } // Implementieren Sie die Zielobjektmethode public void output12v () {// Erhalten Sie den externen Leistungswert float powerfloat = this.absbasepower.getPower (); // Leistungsumwandlung durchführen if (PowerFloat == 380) {// 380V Power Conversion Powerfloat = PowerFloat / 31.67f; } else if (powerfloat == 220) {// 220V Power Conversion Powerfloat = PowerFloat / 18.33f; } else if (powerfloat == 110) {// 110V Power Conversion Powerfloat = PowerFloat / 9.17f; } else {System.out.println ("---- kann nicht an Power anpassen! ..."); zurückkehren; } // Verarbeiten Sie das Konvertierungsergebnis Powerfloat = (int) (PowerFloat * 10) / 10.0f; System.out.println ("---- this ist [" + powerfloat + this.absbasepower.getunit () + "] power! ..."); }}3,7 12 V Stromadapter
Paket com.demo.adapter; import com.demo.power.absbasepower; import com.demo.power Die Methode gibt das zu verwandelne Objekt in öffentliche Adapterpower12ext (absbasepower absbasepower) {super (absbasepower.getPower ()); } // Implementieren Sie die Zielobjektmethode @Override public void output12v () {// Erhalten Sie externer Leistungswert float powerfloat = this.getPower (); // Leistungsumwandlung durchführen if (PowerFloat == 380) {// 380V Power Conversion Powerfloat = PowerFloat / 31.67f; } else if (powerfloat == 220) {// 220V Power Conversion Powerfloat = PowerFloat / 18.33f; } else if (powerfloat == 110) {// 110V Power Conversion Powerfloat = PowerFloat / 9.17f; } else {System.out.println ("---- kann nicht an Power anpassen! ..."); zurückkehren; } // Verarbeiten Sie das Konvertierungsergebnis Powerfloat = (int) (PowerFloat * 10) / 10.0f; System.out.println ("---- this ist [" + powerfloat + this.getUnit () + "] power! ..."); }}3.8 Testadapter
Paket com.demo; import com.demo.adapter.adapterpower12; import com.demo.adapter.adapterpower12ext; com.demo.power.v12.ipower12; importieren com.demo.power.v12.power12; Klasse Client { / ** * @param args * / public static void main (String [] args) {// Wir generieren zuerst ein 220V -Netzteil. Power220 power220 = new Power220 (); power220.output220V (); // Als nächstes generieren wir ein 12 -V -Netzteil! Ipower12 power12 = neuer power12 (); power12.output12v (); // Schließlich verwenden wir den Stromadapter, um die 220 -V -Stromversorgung in eine 12 -V -Stromversorgung umzuwandeln! System.out.println ("/n ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("----- Klassenadapter-Power-Adapter-Konvertierung endet!");3.9 Betriebsergebnisse
---- Dies ist das [220.0V] Netzteil! ...
---- Dies ist das [12.0 V] Netzteil! ...
---- Der Leistungsadapter wird konvertiert ...
---- Dies ist das [12.0 V] Netzteil! ...
--- Die Umwandlung von Stromadapter ist vorbei!
---- Adapter-Stromadapter wird konvertiert ...
---- Dies ist das [12.0 V] Netzteil! ...
---- Die Konvertierung des Klassenadapter-Power-Adapters endet!
3. Designprinzipien
1se-Objektkombinationen, interface-orientierte und abstrakte Programmierung
2 "offen und schließen" Prinzip
4. Verwenden Sie Anlässe
1 Wenn die Softwaresystemstruktur aktualisiert oder erweitert werden muss und den stabilen Betrieb des ursprünglichen Systems nicht beeinflussen möchte
2 Wenn der Unterschied zwischen Conversion -Klassen nicht sehr groß ist
3 Wenn Sie eine wiederverwendbare Klasse erstellen möchten, die in Verbindung mit anderen nicht verwandten oder unvorhersehbaren Klassen arbeiten kann
5. Statische Klassendiagramm des Klassenadaptermodus und Objektadaptermodus
Für weitere Informationen zu Java -Algorithmen können Leser, die an dieser Website interessiert sind, die Themen "Java -Datenstruktur und Algorithmus -Tutorial", "Zusammenfassung der Java -Operation DOM -Knoten -Tipps", "Zusammenfassung der Java -Datei- und Verzeichnisoperationstipps" und "Zusammenfassung der Java -Cache -Operation Tipps" anzeigen
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.