[JAVA] Entwurfsmuster ~ Adapter ~

1. Zuallererst

Hier ist eine Zusammenfassung des ** Adaptermusters ** im GoF-Entwurfsmuster.

2. Was ist das Adaptermuster?

3. Beispielklassendiagramm

3-1. ~ Methode mit Vererbung ~

Adapter.PNG

3-2. ~ Methode mit Delegierung ~

Adapter2.PNG

4. Beispielprogramm

Ein Programm, das Namen und Alter der Schüler anzeigt.

4-1. ~ Methode mit Vererbung ~

4-1-1. Menschliche Klasse

Dies ist die ursprünglich bereitgestellte Klasse.

Human.java


public class Human {

	private String name;
	private int age;

	public Human(String name, int age) {
		this.name = name;
		this.age = age;
	}

	public void printName() {
		System.out.println(name);
	}

	public void printAge() {
		System.out.println(age);
	}
}

4-1-2. Schüleroberfläche

Die erforderliche Schnittstelle.

Student.java


public interface Student {
	public abstract void showName();
	public abstract void showAge();
}

4-1-3. HumanAdapter-Klasse

Diese Klasse dient als Adapter.

HumanAdapter.java


public class HumanAdapter extends Human implements Student {

	public HumanAdapter(String name, int age) {
		super(name, age);
	}

	public void showName() {
		printName();
	}

	public void showAge() {
		printAge();
	}
}

4-1-4. Hauptklasse

Diese Klasse führt die Hauptverarbeitung durch.

Main.java


public class Main {
	public static void main(String[] args) {
		Student student = new HumanAdapter("Tanaka", 25);
		student.showName();
		student.showAge();
	}
}

4-1-5 Ausführungsergebnis

Tanaka
25

4-2. ~ Methode mit Delegierung ~

4-2-1. Menschliche Klasse

Dies ist die ursprünglich bereitgestellte Klasse.

Human.java


public class Human {

	private String name;
	private int age;

	public Human(String name, int age) {
        this.name = name;
        this.age = age;
	}

	public void printName() {
        System.out.println(name);
    }

	public void printAge() {
        System.out.println(age);
    }
}

4-2-2. Schüleroberfläche

Die erforderliche Schnittstelle.

Student.java


public interface Student {
    public abstract void showName();
    public abstract void showAge();
}

4-2-3. HumanAdapter-Klasse

Diese Klasse dient als Adapter.

HumanAdapter.java


public class HumanAdapter implements Student {

	private Human human;

	public HumanAdapter(String name, int age) {
		this.human = new Human("Tanaka", 25);;
    }

	public void showName() {
		human.printName();
    }

	public void showAge() {
		human.printAge();
    }
}

4-2-4. Hauptklasse

Diese Klasse führt die Hauptverarbeitung durch.

Main.java


public class Main {
    public static void main(String[] args) {
    	Student student = new HumanAdapter("Tanaka", 25);
    	student.showName();
    	student.showAge();
    }
}

4-2-5. Ausführungsergebnis

Tanaka
25

5. Vorteile

Das Adaptermuster deckt eine vorhandene Klasse ab, um die erforderliche Klasse zu erstellen. Mit diesem Muster können Sie schnell die Methoden erstellen, die Sie benötigen. Selbst wenn ein Fehler erkannt wird und die vorhandene Klasse gut getestet ist, können Sie sich auf die Klasse konzentrieren, die die Rolle des Adapters spielt, was das Überprüfen des Programms erleichtert. Darüber hinaus können Sie mit dem Adaptermuster Funktionen implementieren, ohne vorhandene Klassen zu ändern, wodurch der Aufwand für das erneute Testen vorhandener Klassen verringert wird.

  1. GitHub

7. Liste der Entwurfsmuster

8. Referenz

Dieser Artikel und das Beispielprogramm wurden basierend auf den folgenden Büchern erstellt.

Es war sehr leicht zu verstehen und ich habe viel gelernt. Vielen Dank. Die detaillierten Erklärungen zu den Entwurfsmustern und Beispielprogrammen sind geschrieben. Schauen Sie sich also auch die Bücher an.

Recommended Posts

Entwurfsmuster ~ Adapter ~
Adaptermuster
Entwurfsmuster ~ Builder ~
Java-Entwurfsmuster
Entwurfsmuster ~ Proxy ~
Entwurfsmuster ~ Zustand ~
Entwurfsmuster ~ Strategie ~
Entwurfsmuster ~ Singleton ~
Entwurfsmuster ~ Composite ~
Entwurfsmuster (2): Builder
Entwurfsmuster (1): AbstractFactory
Entwurfsmuster ~ Befehl ~
Entwurfsmuster ~ Iterator ~
Entwurfsmuster ~ Fassade ~
Entwurfsmuster ~ Brücke ~
Entwurfsmuster ~ Mediator ~
Entwurfsmuster ~ Dekorateur ~
Entwurfsmuster ~ Interpreter ~
Entwurfsmuster ~ Beobachter ~
[Java] Adaptermuster
Entwurfsmuster ~ Memento ~
Entwurfsmuster ~ Fliegengewicht ~
C ++ - Entwurfsmuster (TemplateMethod-Muster)
Entwurfsmuster ~ Fabrikmethode ~
Zusammenfassung des GoF-Entwurfsmusters
Entwurfsmuster ~ Vorlagenmethode ~
Zusammenfassung des Java-Entwurfsmusters
Entwurfsmuster ~ Verantwortungskette ~
[Entwurfsmuster] Java-Kernbibliothek
Entwurfsmuster nach Ruby Template-Methode Musternotiz
C # gekautes Designmuster: TemplateMethod
Anwendungsbeispiel für Entwurfsmuster (Nr. 1)
Java-Anfänger-Entwurfsmuster (Factory-Methodenmuster)
Prototypmuster
Erinnerungsmuster
Iteratormuster
Beobachtermuster
Builder-Muster
Brückenmuster
Befehlsmuster
Builder-Muster
Strategiemuster
Besuchermuster
Proxy-Muster
Strategiemuster
Zusammengesetztes Muster
Singleton-Muster
Prototypmuster
[Entwurfsmuster] Allgemeine Logik mit der Vorlagenmethode
Fassadenmuster
Dekorationsmuster
Fliegengewichtsmuster
Dekorateur Muster
Vermittlermuster
Fassadenmuster
Besuchermuster
Brückenmuster
PrintObserver "Observer Design Pattern: Beschreibung und Implementierungsbeispiel"
Überdenken des Entwurfsmusters mit Java8 Lambda-Ausdruck & Stream - Befehlsmuster -