Detaillierte Erläuterung des Grafikcodes zum Adaptermuster in Java
Dieser Artikel stellt hauptsächlich den Java-Adaptermodus vor. Der Herausgeber findet ihn recht gut. Ich werde ihn jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Editor, um einen Blick darauf zu werfen
1. Konzept
Der Adaptermodus wandelt eine Schnittstelle in eine andere um, die der Kunde wünscht Schnittstelle. Es ermöglicht die Zusammenarbeit von Klassen, die ursprünglich aufgrund inkompatibler Schnittstellen nicht zusammenarbeiten konnten.
2.UML
3
4. Beispielanalyse
Ich habe letztes Jahr einen Laptop gekauft und ihn mit einer Logitech G1-Optikhülle kombiniert. Was wirklich ärgerlich ist, ist, dass die Maus des fotoelektrischen Gehäuses über eine USB-Schnittstelle und die Tastatur über eine PS2-Schnittstelle verfügt, mein Laptop jedoch keine PS2-Schnittstelle hat. Also ging ich auf den Markt und kaufte einen Adapter.
Also habe ich mehrere Klassen abstrahiert.
1.PS2Port (PS2-Schnittstelle).
2. USBPort (USB-Schnittstelle).
3.PS2ToUSB (Objektadapter), ersetzen Sie die PS2-Schnittstelle durch eine USB-Schnittstelle.
4.TestAdapter (Testklasse), Client.
PS2Port
package com.bjpowernode.adapter; /** * PS2接口,圆口 * @author eason * */ public interface PS2Port { public void workWithPS2(); }
USBPort
package com.bjpowernode.adapter; /** * USB接口,U口 * @author eason * */ public interface USBPort { public void workWithUSB(); }
PS2ToUSB
package com.bjpowernode.adapter; /** * 对象适配器 * 将PS2接口装换成USB接口 * 所以此类类型是USB接口(implements USBPort) + 成员变量ps2Port * @author eason * */ public class PS2ToUSB implements USBPort{ private PS2Port ps2Port; public PS2ToUSB(PS2Port ps2Port) { this.ps2Port = ps2Port; } @Override public void workWithUSB() { System.out.println("转换的关键在这里,本来是"); ps2Port.workWithPS2(); System.out.println("经过你的转换,现在是USB工作中"); } }
TestAdapter
package com.bjpowernode.adapter; /** * 测试类 * client * @author eason * */ public class TestAdapter { public static void main(String[] args) { //我现在有一个PS2接口 PS2Port ps2Port = new PS2Port() { @Override public void workWithPS2() { System.out.println("PS2工作中"); } }; //但是我需要的是一个USB接口啊,对我(client)来说,我只认识USB接口 //经过PS2ToUSB的转换,PS2接口变成了USB接口 USBPort ps2ToUsbPort = new PS2ToUSB(ps2Port); ps2ToUsbPort.workWithUSB(); } }
5. Objektadapter und Klassenadapter
Der obige Adapter ist ein Objektadapter. Schauen wir uns noch einmal die Klassenadapter an.
PS2ToUSB, einfach kurz simulieren. Da Java keine Mehrfachvererbung zulässt, gibt es in Java keinen Klassenmustercode, sondern nur Ideen.
package com.bjpowernode.adapter; /** * 类适配器 * @author eason * */ public class PS2ToUSB implements USBPort, PS2Port{ //重写workWithUSB,把工作交给workWithPS2 @Override public void workWithUSB() { workWithPS2(); } }
Der Unterschied besteht darin, dass der Objektadapter die vom Client gewünschte Schnittstelle (USB) implementiert und intern ein angepasstes Objekt (PS2) vorhanden ist. Die Anpassungsfunktion wird durch Kombination realisiert. Der Klassenadapter implementiert die vom Client gewünschte Schnittstelle (USB) und die angepasste Objektschnittstelle (PS2) und implementiert die Anpassungsfunktion durch Vererbung.
6. Nutzungsszenarien und Nutzungserfahrung
1. Ich hoffe, einige vorhandene Klassen wiederzuverwenden, aber die Schnittstelle ist Es steht im Widerspruch zu den Anforderungen der Wiederverwendungsumgebung.
2. Tatsächlich ist der Adaptermodus etwas hilflos. Im frühen Design sollten wir den Adaptermodus nicht berücksichtigen, sondern eine Umgestaltung der einheitlichen Schnittstelle in Betracht ziehen.
7. Adaptermuster und Dekoratormuster
Sie können beide zum Umwickeln von Objekten verwendet werden das
1. Adaptermodus: Konvertieren Sie eine Schnittstelle in eine andere.
2. Dekorationsmuster: Ändern Sie nicht die Benutzeroberfläche, sondern fügen Sie nur Verantwortlichkeiten hinzu.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Grafikcodes zum Adaptermuster in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

Spring Boot vereinfacht die Schaffung robuster, skalierbarer und produktionsbereiteter Java-Anwendungen, wodurch die Java-Entwicklung revolutioniert wird. Der Ansatz "Übereinkommen über Konfiguration", der dem Feder -Ökosystem inhärent ist, minimiert das manuelle Setup, Allo
