Ich lese es immer, wenn ich es erkläre, also fasse ich es zusammen
** Übliche Methode zum Senden von Nachrichten **
--Mechanismus zum Teilen von Nachrichten, die beim Erstellen einer übergeordneten Klasse an untergeordnete Klassen übergeben werden --Mechanismus zum Teilen von Nachrichten über Schnittstellen (in Java)
** Als Verb für jedes der oberen und unteren Konzepte festgelegt **
Ein allgemeines Verb gilt
Ich habe einen Schnitt
** Die Instanz, die das Argument empfängt, verhält sich je nach Klasse unterschiedlich **
Mit einem gemeinsamen Methodennamen eingerichtet
--Erstellt als Methode für jede der Ober- und Unterklassen
Animal.java
public abstract class Animal {
public abstract void eat();
}
Human.java
public class Human extends Animal {
public void eat() {
System.out.println("Iss knusprig");
}
}
Dog.java
public class Dog extends Animal {
public void eat() {
System.out.println("Gab flatterte");
}
}
Chef.java
public class Chef {
public void serve(Animal animal) {
System.out.println("Bitte");
System.out.println(animal.eat());
}
}
Eater.java
public interface Eater {
public void eat();
}
Human.java
public class Human implements Eater {
public void eat() {
System.out.println("Iss knusprig");
}
}
Dog.java
public class Dog implements Eater {
public void eat() {
System.out.println("Gab flatterte");
}
}
Chef.java
public class Chef {
public void serve(Eater eater) {
System.out.println("Bitte");
System.out.println(eater.eat());
}
}
――Das, was zwischen denen, die die Vererbungsfunktion verwenden, und denen, die die Schnittstellenfunktion verwenden, gemeinsam ist, ist, dass die aufrufende Methode unabhängig vom Typ dieselbe ist (in diesem Fall die vom Küchenchef bereitgestellte Person).
Zusammenfassung, warum wir es objektorientiert machen
Akira Hirasawa (Autor) Warum objektorientiert machen, 2. Auflage https://amzn.to/2VSrzwe
Selbst Designmuster und Refactoring können gut angewendet werden, wenn Sie diese Perspektive haben.
Recommended Posts