Für ein persönliches Projekt arbeite ich an einem kleinen webbasierten Spiel.
J'ai un Card
Klasse, die eine Status
Eigenschaft, und es gibt überall Case-Anweisungen. Ich dachte: "Hey, das ist eine tolle Gelegenheit für Konditional durch Polymorphismus ersetzen !
Das Problem ist, dass ich ein paar Methoden habe, die so etwas machen:
public class Card
{
public void ChangeStatus()
{
switch (Status)
{
case MyStatusEnum.Normal:
Status = MyStatusEnum.Underwater;
break;
case MyStatusEnum.Underwater:
Status = MyStatusEnum.Dead;
break;
// etc...
}
}
}
Beim Refactoring in der neuen NormalCard
Klasse, überschreibe ich die ChangeStatus
Methode wie folgt:
public override void ChangeStatus()
{
base.Status = MyStatusEnum.Underwater;
}
Das Problem ist dieses Objekt der NormalCard
hat einen Status von Underwater
. Ich kann den Typ nicht neu zuordnen this
und ich möchte nicht wirklich die Rückgabe der Methoden von void
a CardBase
. Welche Möglichkeiten habe ich? Gibt es eine Standardmethode, um dies zu tun?
Editar Tormod hat mich aufgeklärt. Ich will die Zustand Muster . Danke an alle!