Kurze Antwort: Ja, Zeichenfolgen eignen sich nur für das Speichern und Zugreifen auf eine Folge von Textzeichen. Auch wenn die zugrunde liegenden Bits einer Abstraktion Zeichenfolgen sind, bietet es Vorteile, sie als Variablen oder Konstanten zu referenzieren .
Lange Antwort: Die meisten Sprachen bieten Typen an, die näher an der Domäne Ihres Problems liegen, und auch wenn dies nicht der Fall ist, verfügen sie wahrscheinlich über eine Methode, mit der Sie lefteine Entität definieren können, die sich von right(etc etc) unterscheidet. Das Verwandeln in eine Zeichenfolge mithilfe von verfällt "left"lediglich die Sprache und die hilfreichen Funktionen der IDE, z. B. die Fehlerprüfung. Auch wenn Sie verwenden müssen
left = "left";
Oder etwas Äquivalentes: Es hat Vorteile, die Zeichenfolge zu verwenden, wenn Sie im gesamten Code darauf verweisen. Beispielsweise,
if (player.direction == Left)
würde als Fehler bei der Kompilierung erkannt (bester Fall, Java und so) oder von einer IDE als falsch gekennzeichnet (schlimmster Fall, grundlegend und so).
Darüber hinaus lefthilft Ihnen der Begriff als referenzierbare Entität dabei, die Richtung zu berücksichtigen, in die Sie sich für den Richtungstyp entscheiden. Durch die Verwendung von "left"wird Richtung dazu verpflichtet, ein String. Wenn Sie eine bessere Abstraktion für den Typ finden oder erstellen, müssen Sie Ihren gesamten Codekörper durchsuchen und dabei jede Instanz von ändern "left". Eine Konstante oder Variable erfordert keine Änderungen, wenn der Typ ausgearbeitet ist.
Der Typ, den Sie wirklich wollen, ist spezifisch für Ihre Domain. Was hat Ihr Code mit Ihrem zu tun left? Vielleicht möchten Sie die x-Achse einer Textur oder eines Sprites spiegeln, die / das nach links zeigt oder sich vorwärts bewegt. In diesem Fall möchten Sie möglicherweise leftein Objekt mit einer Eigenschaft oder Methode erstellen, die dieses Verhalten widerspiegelt, wobei Ihr rightObjekt das entgegengesetzte nicht gespiegelte Ergebnis aufweist. Sie können diese Logik in einem Objekt ausführen, das die Sprites oder Texturen darstellt. In diesem Fall leiden Sie erneut unter der Verwendung "left"anstelle der leftoben genannten Gründe.
In Java (und wahrscheinlich in anderen Sprachen, die ich noch nicht kenne) enumist dies eine gute Alternative, da es in Java enumgenauso nützlich ist, wenn final classeine endliche Menge von Instanzen vorhanden ist. Sie können Verhalten definieren, wenn Sie diese benötigen, und Sie können problemlos zu einer offenen Klasse außerhalb der Datei wechseln, in der das deklariert wird enum, aber viele Sprachen sehen das enumals primitiven Typ oder erfordern eine spezielle Syntax. Dies führt enumdazu, dass Code verloren geht, der nichts damit zu tun hat und möglicherweise später korrigiert werden muss. Stellen Sie sicher, dass Sie das Konzept Ihrer Sprache verstehen, enumbevor Sie die Option in Betracht ziehen.