Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
mal angenommen ich habe zwei Klassen die z.B. Model und Ausgabe heißen. Die Klasse Model hat abhängig von der momentanten Situation einen bestimmten Zustand. Abhängig von diesem Zustand soll in der Klasse Ausgabe eine bestimmte Anweisung ausgeführt werden.
Code:
class Model
{
private BasisZustand zustand
public BasisZustand getZustand()
{
return zustand;
{
}
class Ausgabe
{
if(zustand == startZustand) // das Problem liegt in dieser Zeile
// Aktion A
else
// Aktion B
}
was beinhaltet zustand eigentlich (eine Speicheradresse?)
Ja, die Variable beinhaltet eine Speicheradresse. Es kommt also nur true zurueck, wenn beide Objekte
die gleiche Adresse haben - somit das gleiche Objekt sind...
Du kannst Dir mal das Interface Comparable ansehen. Das muessen Deine Klassen implementieren, damit
Du sie vergleichen kannst...
Zweck:
Definiere eine 1-zu-n-Abhängigkeit, so dass die Änderung des Zustands eines Objektes dazu führt, dass alle abhängigen Objekte benachrichtigt und automatisch aktualisiert werden.
ich hab mein Programm nach dem MVC Entwurfmuster programmiert. Hab eine HauptView die sich aus verschiedenen Komponenten (Klassen) zusammensetzt. Diese Hauptview ist am Model als Listener angemeldet (wird also auch bei einer Veränderung benachrichtigt). Einer der Komponenten meiner HauptView ist die Klasse Ausgabe die ich schon in meiner Frage am Anfang erwähnt habe. ich hab das nun so realisiert das meine Klasse Ausgabe die eine Referenz auf den aktuellen Zustand des Models hat (ist ja eigentlich nicht MVC und ich weis nicht ob das OK ist) anhand des aktuellen Zustands die jeweils möglichen Aktionen auf dem Bildschirm ausgibt. Dazu muss ich dann eben anhand meines aktuellen Zustands die die entsprechend möglichen Aktionen auf meiner View ausgeben.
Ist jetzt vielleicht etwas verwirrend
Ich würde einfach nur gerne wissen ob diese Implementierung vom Prinzip her Ok ist und falls ja wie ich anhand des aktuellen Zustand eine Aktion durchführen kann.
ist jetzt die Klasse Basiszustand die konkreten Zustände sind aus dieser abstrakten Klasse abgeleitet
Code:
abstract public class BasisZustand
{
protected Ziehungsgerät ziehungsgerät;
public BasisZustand(Ziehungsgerät ziehungsgerät)
{
this.ziehungsgerät = ziehungsgerät;
}
public void zahlTippen(int getippteZahl)
{
System.out.println("In diesem Zustand kann keine Zahl festgelegt werden");
}
public void ziehungStarten()
{
System.out.println("In diesen Zustand kann die Ziehung nicht gestartet werden");
}
}