Dieser Artikel enthält Beispiele für zwei Adaptermodi, nämlich den Klassenanpassungsmodus und den Objektanpassungsmodus. Die Details sind wie folgt:
1. Klassenanpassungsmodus:
Lassen Sie mich Ihnen ein Beispiel geben: Im Erdzeitalter konnten alle Reittiere nur laufen und nicht fliegen, aber jetzt können viele Reittiere auf der Erde fliegen. Gehen Sie davon aus, dass Reittiere im Erdzeitalter nur laufen konnten, die heutigen Reittiere jedoch nicht nur fliegen, sondern auch laufen können. Wir können den Klassenanpassungsmodus verwenden, um dies zu erreichen.
Hierbei ist zu beachten, dass der Adapter die Quellklasse erbt und die Zielschnittstelle implementiert.
Der Beispielcode lautet wie folgt:
Paketadapter;/** * DOC-Quelle* */public class Sources { public void run() { System.out.println("run" }}package adapter;/** * DOC-Zielschnittstelle* */public interface ITarget { public void run(); public void fly();}package adapter;/** * DOC erbt die Quellklasse und implementiert die Zielschnittstelle, wodurch eine Klassen-zu-Schnittstellen-Anpassung erreicht wird* */public class Adapter erweitert Quellen implementiert ITarget { @Override public void fly() { System.out.println("fly" }}2. Objektanpassungsmodus:
Angenommen, ein Adapter möchte sich an mehrere Objekte anpassen, können Sie diese Objekte in den Adapter einführen und dann die Methoden dieser Objekte aufrufen.
Der Implementierungscode lautet wie folgt::
Paketadapter;/** * * DOC-Quellobjekt, hat nur die Funktion des Ausführens* */public class Animal { public void run() { System.out.println("run" }}package adapter;/** * DOC Die Zielschnittstelle kann sowohl ausgeführt als auch fliegen* */public interface ITarget { public void run(); public void fly();}package adapter;/** * DOC führt das Quellobjekt über den Konstruktor ein und erreicht die Zielmethode * */öffentliche Klasse Adapter implementiert ITarget { private Animal animal; // privates animal animal2....kann sich an mehrere Objekte anpassen public Adapter(Animal animal) { this.animal = animal } /** * Neue Methoden, die DOC zur Erweiterung der Schnittstelle benötigt; / public void fly() { System.out.println("fly"); } /** * DOC-Methode mit Quellobjekt*/ public void run() { this.animal.run( }}