Was ist der beste Weg, um die Reihenfolge der Dinge auf der Grundlage einiger Bedingungen zu manipulieren (anders als schreiben sie wieder mit der anderen Reihenfolge)?Ändern der Reihenfolge der Methode Aufruf für verschiedene Instanzen einer Klasse
Sagen wir, es gibt eine Personenklasse und jedes Objekt der Person repräsentiert einen anderen Menschen.
class Person{
int eatingPriority = 3;
int sleepingPriority = 2;
int recreationPriority = 1;
void eat() {/*eats*/}
void sleep() {/*sleeps*/}
void watchTv() {/*watches tv*/}
void satisfyNeeds() {
//HOW TO DO THIS
}
}
Wie kann ich die satisfyNeeds()
Methoden, um die anderen drei Verfahren auf der Grundlage ihrer Priorität nennen?
Hinweis: Ich möchte klarstellen, dass sich Prioritäten von Person zu Person ändern können.
Die einfachste ist eine abstrakte Klasse mit zwei Methoden zu erstellen: 'getPriority()' und 'run()'. Erstellen Sie dann für jede Aktivität einen Insurance. Schließlich können Sie Instanzen dieser Aktivitäten in eine Liste aufnehmen und nach Priorität sortieren. –
@ArnaudDenoyelle oder verwenden Sie eine 'PriorityQueue' – SpaceTrucker
Ich habe den Zweck des Programms gefragt. Wir versuchen, den saubersten Weg zu finden, den Ablauf des Programms zu manipulieren. In diesem Beispiel nehmen wir an, dass wir eine KI für ein Spiel erstellen, in dem Personen simuliert wurden. Wenn Sie beide hungrig und müde sind, würden Sie zuerst schlafen oder essen? Wenn Ihre Schlafpriorität höher ist, schlafen Sie zuerst, sonst essen Sie vor dem Schlafen. Es ist auch möglich, die Prioritäten im laufenden Betrieb zu ändern. Wir können den Schlaf- und Nahrungsbedarf messen und daraus eine Priorität machen. Beachten Sie, dass der Code in der Frage eine vereinfachte Version ist, um das Problem zu veranschaulichen – WVrock