Câu trả lời ngắn: Có, các chuỗi không lý tưởng cho bất kỳ tác vụ nào ngoài việc lưu trữ và truy cập một chuỗi các ký tự văn bản và ngay cả khi các bit cơ bản của trừu tượng là các chuỗi, có những lợi ích khi gọi chúng là biến hoặc hằng .
Câu trả lời dài: hầu hết các ngôn ngữ cung cấp các loại gần với miền của vấn đề của bạn và ngay cả khi chúng không có, chúng có thể có một số phương pháp mà bạn có thể xác định left
là một thực thể khác với right
(v.v.). Biến nó thành một chuỗi bằng cách sử dụng "left"
chỉ đơn giản là bị mất ngôn ngữ và chức năng hữu ích của IDE như kiểm tra lỗi. Ngay cả khi bạn phải sử dụng
left = "left";
hoặc một cái gì đó tương đương, nó có lợi thế khi sử dụng chuỗi khi bạn tham chiếu nó qua mã của bạn. Ví dụ,
if (player.direction == Left)
sẽ được phát hiện là lỗi thời gian biên dịch (trường hợp tốt nhất, java và tương tự) hoặc bị đánh dấu bởi bất kỳ IDE nào có giá trị bit của nó là sai (trường hợp xấu nhất, cơ bản và như vậy).
Ngoài ra, có khái niệm left
là một thực thể có thể tham chiếu sẽ giúp bạn điều chỉnh bất kỳ hướng nào bạn quyết định đi với loại hướng. Bằng cách sử dụng "left"
, hướng được cam kết là a String
. Nếu bạn tìm thấy hoặc tạo ra một sự trừu tượng hóa tốt hơn cho loại, bạn cần phải đi tìm toàn bộ phần thân mã của mình thay đổi mọi trường hợp "left"
. Một hằng hoặc biến sẽ không yêu cầu bất kỳ thay đổi nếu loại được xây dựng.
Loại bạn thực sự muốn là đặc biệt cho miền của bạn. Mã của bạn có kế hoạch để làm gì với của bạn left
? Có lẽ bạn sẽ muốn phản chiếu trục x của một kết cấu hoặc sprite hướng về bên trái hoặc di chuyển về phía trước; nếu vậy, bạn có thể muốn tạo left
một đối tượng bằng một thuộc tính hoặc phương thức phản ánh hành vi đó, với right
đối tượng của bạn có kết quả không được nhân đôi ngược lại. Bạn có thể thực hiện logic đó trong một đối tượng đại diện cho các họa tiết hoặc kết cấu, trong trường hợp đó bạn sẽ phải chịu đựng khi sử dụng "left"
thay vì các left
lý do đã nêu ở trên.
Trong Java (và có lẽ các ngôn ngữ khác mà tôi chưa biết), enum
là một lựa chọn tốt vì trong Java, enum
cũng hữu ích final class
với một tập hợp hữu hạn. Bạn có thể xác định các hành vi nếu bạn cần chúng và bạn có thể chuyển sang một lớp mở mà không gặp rắc rối nào bên ngoài tệp khai báo enum
, nhưng nhiều ngôn ngữ xem enum
là một kiểu nguyên thủy hoặc yêu cầu cú pháp đặc biệt để sử dụng. Điều đó làm rò rỉ enum
mui xe thành mã không có kinh doanh với nó và có thể cần phải được sửa chữa sau này. Hãy chắc chắn rằng bạn hiểu khái niệm ngôn ngữ của enum
bạn trước khi bạn xem xét tùy chọn.