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 left
eine 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 left
hilft 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 left
ein Objekt mit einer Eigenschaft oder Methode erstellen, die dieses Verhalten widerspiegelt, wobei Ihr right
Objekt 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 left
oben genannten Gründe.
In Java (und wahrscheinlich in anderen Sprachen, die ich noch nicht kenne) enum
ist dies eine gute Alternative, da es in Java enum
genauso nützlich ist, wenn final class
eine 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 enum
als primitiven Typ oder erfordern eine spezielle Syntax. Dies führt enum
dazu, 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, enum
bevor Sie die Option in Betracht ziehen.