Angenommen, Sie haben die folgende Oimo-Klasse. Sie können den Geschmack in dieser Klasse fühlen.
Oimo.java
package adapter;
public class Oimo {
public String feelTaste() {
return "Köstlich";
}
}
Ich möchte jedoch Informationen über Kartoffeln, wenn ich sie esse. Deklarieren Sie wie folgt. Die hier angezeigten Klassen NewAbility und NewOimo sind die Protagonisten des Adaptermusters.
User.java
package adapter;
public class User {
public static void main(String[] args) {
NewAbility oimo = new NewOimo("Beni Azuma");
System.out.println(oimo.oimoInfo());
}
}
Erstellen wir zunächst eine NewOimo-Klasse, die die Oimo-Klasse erbt. Übrigens, geben wir eine neue Fähigkeit, damit Sie die Kartoffelinformationen erhalten können.
NewOimo.java
package adapter;
public class NewOimo extends Oimo implements NewAbility {
public final String name;
public NewOimo(String name) {
this.name = name;
}
@Override
public String oimoInfo() {
return getName() + feelTaste();
}
private String getName() {
return this.name;
}
}
Als Nächstes erstellen wir eine NewAbility-Schnittstelle, die die User-Klasse und die NewOimo-Klasse miteinander verbindet, und delegieren sie an die NewOimo-Klasse.
NewAbility.java
package adapter;
public interface NewAbility {
public String oimoInfo();
}
Dieses Adaptermuster scheint nützlich zu sein, wenn Sie vorhandenen Code verwenden möchten, ihn jedoch nicht direkt verwenden können, da die IF unterschiedlich ist. Lass uns erinnern! Wird es nicht für Neuentwicklungen verwendet?
Wir sehen uns wieder (^_^) Noshi
Recommended Posts